当我的应用程序处于空闲状态时,Android会终止该进程。 如果用户在一段时间后重新打开应用程序,则只创建顶级活动 - 这对我来说是个问题,因为活动依赖于其他对象(现在已被销毁)的初始化。
在这种情况下我想要做的是重新启动应用程序。 我怎么能这样做?
答案 0 :(得分:7)
只需确定您的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);
答案 1 :(得分:0)
您可能应该考虑在应用程序的Application
类的实现中存储此类对象。
如果这些对象包含需要更持久的状态,则应将每个Activity的onPause()
方法中的此类对象的状态保存到数据库,SharedPreferences或远程。
答案 2 :(得分:0)
我认为这个答案只适合你。
完成进度后,请调用此
finish();
Intent intent = new Intent(this, sameactivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);