当我的应用程序闲置时,Android会杀死进程。 如果用户在一段时间后重新打开应用程序,则仅创建顶部Activity-这对我来说是一个问题,因为该活动取决于其他对象的初始化(现在已被销毁)。
在这种情况下,我想要做的是重新启动应用程序。 我该怎么做?
当我的应用程序闲置时,Android会杀死进程。 如果用户在一段时间后重新打开应用程序,则仅创建顶部Activity-这对我来说是一个问题,因为该活动取决于其他对象的初始化(现在已被销毁)。
在这种情况下,我想要做的是重新启动应用程序。 我该怎么做?
如果您想在Android系统销毁应用后重新启动应用程序,请在自定义的Application
类中保留一个变量,并在初始化应用程序后将其设置为true
,以便识别您的Application
是否被销毁。因此,当应用程序重新启动时,该标志为false,然后只需创建一个Intent
以启动您的主要Activity
并指定FLAG_ACTIVITY_CLEAR_TOP
:
Intent reLaunchMain=new Intent(this,MainActivity.class);
reLaunchMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(reLaunchMain);
我认为这个答案只适用于您。
完成进程后,请调用此函数。
finish();
Intent intent = new Intent(this, sameactivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
你应该考虑将这些对象存储在应用程序实现的Application
类中。
如果这些对象包含需要更持久的状态,你应该在每个Activity的onPause()
方法中保存这些对象的状态,可以保存到数据库、SharedPreferences或远程服务器。