Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
进程终止后重新启动Android应用程序_Android_Android Activity - Fatal编程技术网

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

进程终止后重新启动Android应用程序,android,android-activity,Android,Android Activity,当我的应用程序空闲时,Android会终止进程。 如果用户在一段时间后重新打开应用程序,则只会创建顶部活动-这对我来说是个问题,因为该活动依赖于其他对象的初始化(现在已销毁) 在这种情况下,我想做的是重新启动应用程序。 我该怎么做呢?您可能应该考虑在应用程序的类实现中存储这样的对象 如果这些对象包含需要更持久的状态,您应该在每个活动的onPause()方法中将这些对象的状态保存到数据库、SharedReferences或远程。只需确定您的应用程序是在之前被Android销毁后启动的,您可以在自定

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

在这种情况下,我想做的是重新启动应用程序。
我该怎么做呢?

您可能应该考虑在应用程序的类实现中存储这样的对象


如果这些对象包含需要更持久的状态,您应该在每个活动的
onPause()
方法中将这些对象的状态保存到数据库、SharedReferences或远程。

只需确定您的
应用程序是在之前被Android销毁后启动的,您可以在自定义的
应用程序
类中保留一个变量,并在应用程序初始化后将其设置为
true
。因此,当应用程序重新启动时,此标志为假,然后只需做出
意图
即可启动主
活动
指定
标志活动\u清除\u顶部

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

Android为了释放内存而关闭了一个应用程序。因此,如果应用程序处于空闲状态,当操作系统需要内存来执行其他程序时,它很可能会在某个时候被杀死。也许你需要一个后台服务来保持重要对象的运行。您可以使用
Sticky Intent
来确保服务在终止时重新启动。即使您将它们保留在
应用程序
类中,在进程被
Android
终止后,对象将丢失,并且您将不会以“初始化活动”开始,但是最后一个可见的。我应该把代码放在哪里?若我在一次创建活动中执行此操作,它会崩溃。您会遇到什么异常?当您的应用程序由Android重新启动时,您应该调用此命令。@OvidiuLatcu hi,当您启动(并重新创建)的活动不是启动器时,是否重新创建了应用程序对象?我之所以要问这个问题,是因为我无法在重新创建活动时连接调试器。Tks