class="java"> 如果一个APP在被转到了后台,就很有可能被系统回收, 当APP在后台被系统回收,再次打开APP的时候,会发生什么事情呢?(以下是个人测试得到) 1,一般所有能回收的Activity都会被回收, Application 也会销毁 2,会在一个新的进程中新建一个应用, 意味所有旧的变量,常量都不存在了 ,是所有哦!!! 3,重新加载APP最后显示的Activity 4,这个时候点击返回键,会重新加载倒数第二个Activity, 以此类推... 我遇到的问题是保存在 全局变量 和 静态变量 都没有数据了 我要实现的效果是如果APP被后台回收,就重新打开应用, 实现如下: 1,定义一个基类BaseActivity 2,除了程序入口的Activity 其他activity都继承BaseActivity 3,在BaseActivity的onCreate方法中判断必要的变量是否销毁,如果销毁了就调用 android.os.Process.killProcess(android.os.Process.myPid()); 来结束整个应用 这样所有的activity都会被关闭,而程序入口的activity会重新加载,达到了重新加载的效果 为什么 killProcess 不会结束程序入库的activity呢? 分析如下: 系统其实只是记录了APP中activity打开的顺序,当我们再次打开被系统回收的APP的时候APP中其实只有一个activity,当我面killProcess的时候,系统又会重新建一个线程去打开倒数第二个activity,依次类推 当打开程序入口的activity时,由于我们去没有销毁它,所以activity被重新加载,相当于重新打开了应用