进程终止后重新启动Android应用程序

时间:2012-07-24 07:20:34

标签: android android-activity

当我的应用程序处于空闲状态时,Android会终止该进程。 如果用户在一段时间后重新打开应用程序,则只创建顶级活动 - 这对我来说是个问题,因为活动依赖于其他对象(现在已被销毁)的初始化。

在这种情况下我想要做的是重新启动应用程序。 我怎么能这样做?

3 个答案:

答案 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);