当进程被终止时,永远不要调用Create

时间:2013-04-19 11:26:37

标签: android android-lifecycle

我正在构建一个适用于我的Nexus 7的应用程序,没有任何问题,也在我的Galaxy S2上。现在我已经在Galaxy S3上测试了它,但不知何故,内存管理更加激进。如果我按下主页按钮并等待几分钟,OnCreate会再次被调用,所以我认为该过程已经被杀死。但是如果进程被杀死,对于这个特定的应用程序,我希望它开始另一个活动。

我可以使用覆盖onStop和onPause,但这会导致一些不必要的行为,查看Activity Lifecycle。如果该过程没有被杀死,则可以返回活动。

有解决方法吗?

2 个答案:

答案 0 :(得分:2)

如果系统确定需要释放一些资源,按主页按钮可以销毁您的活动。

这可能是因为活动正在完成(有人称为finish(),或者因为系统暂时销毁此活动实例以节省空间。您可以使用isFinishing()方法区分这两种情况

答案 1 :(得分:1)

您可以在savedInstanceState中使用onCreate,如下所示:

if( savedInstanceState != null ) {
            //Toast.makeText(this, savedInstanceState.getString("message")+"--> ", Toast.LENGTH_LONG).show();
            Intent intent = new Intent(First.this, Second.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            return;
        }