15

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

在这种情况下,我想做的是重新启动应用程序。我怎样才能做到这一点?

4

3 回答 3

9

只需确定您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);
于 2012-07-24T07:26:03.863 回答
1

我想这个答案只适合你。

完成进度后调用这个

        finish();
        Intent intent = new Intent(this, sameactivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
于 2013-01-04T06:08:49.803 回答
0

您可能应该考虑将此类对象存储在应用程序的Application类实现中。

如果这些对象包含需要更持久的状态,则应将此类对象的状态保存在每个 Activity 的onPause()方法中,保存到数据库、SharedPreferences 或远程。

于 2012-07-24T07:24:10.083 回答