首页 > 应用在后台驻留内存被其他应用抢占内存后,用户点击应用后恢复到前台,Activity栈有没有被保存恢复,生命周期是否正常?

应用在后台驻留内存被其他应用抢占内存后,用户点击应用后恢复到前台,Activity栈有没有被保存恢复,生命周期是否正常?

描述状况如题目所说,问题是:
1.activity 之间的先后状态有没有被保存恢复,换句话说不停点击返回键后之前的activity顺序是否正常?

2.点击返回键后触发的上个activity 的生命周期是什么,和正常的跳转返回有什么区别?

3.能否判断是否重要状态是否丢失?这个状态是否是保存在硬盘上的永远不会丢失的?如果不能保证然后如何实现整个应用的整体重新启动?


  1. 楼主先学习下启动模式launchMode,四种。第一个问题就解决了。launchMode

  2. 1> onRestart() --> onStart() --> onResume()
    2> 根据Activity的launchMode,和Intent.setFlag的不同,情况不同。setFlag

  3. 你是想问如何判断自身App是否被Kill掉?

ActivityManager am = (ActivityManager) ct.getSystemService(Context.ACTIVITY_SERVICE);
        List<RunningTaskInfo> infos = am.getRunningTasks(100);

        for (int i = 0; i < infos.size(); i++) {
            RunningTaskInfo info = infos.get(i);
            if (info.baseActivity.getPackageName().equals(ct.getPackageName())) {
                if (info.numActivities != info.numRunning)
                    return true;
            }
        }

        return false;
若程序被Kill掉,点多任务选择App,依旧启动清单文件中Search配置意图过滤<action android:name="android.intent.action.MAIN" />的Activity。

常见提升自身App内存中优先级,尽量避免被Kill的内容我就不回复了,流氓做法自己找,不传播
【热门文章】
【热门文章】