如果android杀死进程如何处理后退按下

时间:2015-11-12 15:23:23

标签: java android

我用谷歌搜索但没有找到有用的有用信息。如果我打开应用程序并完成这些活动A-B-C-D,应用程序在后台堆栈中有4个活动。 Android可以杀死进程,他实际上做了什么,恢复应用程序后我看到活动D,所以我如何处理这种行为,如何检查我在后台堆栈中有多少真正的活动。

我试过了:

ActivityManager mngr = (ActivityManager) getSystemService( ACTIVITY_SERVICE );
List<ActivityManager.RunningTaskInfo> taskList = mngr.getRunningTasks(10);
Log.d("myTag",taskList.get(taskList.size()-1).numActivities+"");

ActivityManager mngr = (ActivityManager) getSystemService( ACTIVITY_SERVICE );
List<ActivityManager.RunningTaskInfo> taskList = mngr.getRunningTasks(10);
if(taskList.get(0).numActivities == 1 && taskList.get(0).topActivity.getClassName().equals(this.getClass().getName())) {
    Log.i(TAG, "This is last activity in the stack");
}

但它在杀戮过程之前和之后显示相同的数字。

如果我的应用程序被终止,我想将用户重定向到actviity A,并且后退按下的事件将关闭应用程序。

1 个答案:

答案 0 :(得分:2)

您应该使用onSavedInstanceState处理此问题。

检查此图片: enter image description here

指南说:

  

活动返回到用户关注的两种方式,其状态保持不变:活动被销毁,然后重新创建,活动必须恢复以前保存的状态,或活动停止,然后恢复,活动状态仍然存在完好。

因此,您应该保存实例状态并将其恢复到onRestoreInstanceState,然后您可以根据以前的活动状态执行所需操作。

点击此链接以获取参考:http://developer.android.com/guide/components/activities.html#ConfigurationChanges

希望它有所帮助。