其实Android框架的思想是很好的,对于空的进程,没事干的进程直接kill掉,对于用户体验来讲是不会有影响的,但是往往我们的App都会有推送这个功能,恰巧GCM(Google Cloud Messaging)在国内又不能用,所以很多情况下我们也会希望App在后台的时候也尽量不要被杀。

可以考虑把后台App进程的优先级提高,下面有几个方法:

  • AndroidManifest.xml中配置persistent属性
<application android:name="App"
android:persistent="true"
android:label="@string/dialerIconLabel"
android:icon="@drawable/ic_launcher_phone">
  • 重载back按键事件,让activity在后台运行,不要Destory
  • 开Service,并设置前台运行方式
  • 与NotificationManager交互,让进程变成可感知进程
  • 发送/接收广播,别让自己变成空进程

很明显这会消耗更多的电量,也有点流氓,有些需求也许本就不该做。