是的,并没有整个程序都启动 如果想被系统收回后重启。
可以通过service来解决,在onStartCommand()函数中返回 START_STICKY 这个标记。

解决方案 »

  1.   

    原来是这样哦,难怪MainActivity没执行全部,导致后面出现空指针了,
    这个Service 能够给个详细的思路吗!
      

  2.   

    我的需求是这样的,在应用任何一个页面,按Home键,新建一个Notification在状态栏,点击Notification回到之前页面。
    现在有个问题,应用被回收之后,点击Notification是重新启动应用,但是并没有整个应用都启动,导致该页面使用的全局变量是个空指针,导致应用崩溃退出。这个问题怎么解决啊!
      

  3.   

    如果你要保留你的状态的话,那就用START_REDELIVER_INTENT,因为START_STICKY是不保留启动的intent的状态的。
    具体实现大概:你按HOME键新建的notification中带一个启动service的intent(这个你应该知道怎么写吧),把你要保存的状态数据放到这个intent中,这个intent就传到service中了,接着
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        handleCommand(intent);//这个intent就保存了你的数据,然后恢复楼主所需的状态哈
        // We want this service to continue running until it is explicitly
        // stopped, so return sticky.
        return START_REDELIVER_INTENT;
    }