2012-11-28 55 views
0

我必须以1个小时的时间间隔重新启动我的应用程序。但是,当我尝试下面的代码,一个新的活动开始,但我想要关闭的活动仍然作为线程在后台运行:SAndroid重新启动主要活动代码

我该怎么办?谢谢..

if (timeOutOK) { 

      finish(); 
      Intent i = getBaseContext().getPackageManager() 
        .getLaunchIntentForPackage(
          getBaseContext().getPackageName()); 
      i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(i); 

     } 
+0

为什么?这是目的? – Vladimir

+0

活动不能作为另一个线程在后台运行。也许如果你概述你想要达到的目标,这里的某个人可以帮助你更好一点。 – Archit

+0

不!我试图关闭主要活动,但它仍然在后台运行,我可以看到正在运行的应用程序。 –

回答

0

您可能在某处保持对活动的生动参考。即使完成调用之后,旧活动也不会进行GC编辑,直到没有活动引用为止,因此您需要更新所有引用以指向新的“活动”。

你说它在后台运行,因为线程没有任何意义,但是只要未正确处理,您的活动可能会在后台线程或UI线程上继续执行操作。