当我的应用程序空闲时,Android 会终止该进程。如果用户在一段时间后重新打开应用程序,则只会创建顶部的 Activity - 这对我来说是个问题,因为该 Activity 依赖于其他对象的初始化(这些对象现在已被销毁)。
在这种情况下,我想做的是重新启动应用程序。我怎样才能做到这一点?
当我的应用程序空闲时,Android 会终止该进程。如果用户在一段时间后重新打开应用程序,则只会创建顶部的 Activity - 这对我来说是个问题,因为该 Activity 依赖于其他对象的初始化(这些对象现在已被销毁)。
在这种情况下,我想做的是重新启动应用程序。我怎样才能做到这一点?
只需确定您Application
在之前被 Android 销毁后正在启动,您可以通过在自定义Application
类中保留一个变量来执行此操作,并true
在您的应用程序初始化后将其设置为。因此,当应用程序重新启动时,此标志为 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 或远程。