如何让Android应用程序每次打开时都停止重启?

时间:2012-12-21 09:28:00

标签: java android android-activity

我开发了一个小型的Android应用程序,最近发现了一种奇怪的行为。

当我使用usb和eclipse安装此应用程序后导航到任意Activity时,我可以离开应用程序,转到android主屏幕或其他应用程序,然后通过再次“启动”应用程序直接返回到上述任意Activity。

但是当我通过下载apk文件直接在手机上安装应用程序时,在我切换到另一个应用程序或android主屏幕后,当我返回此应用程序时,我将始终返回到应用程序的根Activity。

有人知道这种行为的来源或我如何解决这个问题吗?

更新:我在两种情况下都在真实硬件上运行应用程序。

3 个答案:

答案 0 :(得分:7)

将以下代码放到root Activity中最终解决了这个问题。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { 
        // Activity was brought to front and not created, 
        // Thus finishing this will get us to the last viewed activity 
        finish(); 
        return; 
    } 

}

来源: App always starts fresh from root activity instead of resuming background state (Known Bug)

答案 1 :(得分:4)

manifest文件android:launchMode="standard"放在您要显示一次的特定activity文件中。

答案 2 :(得分:1)

这是因为系统处理应用程序的方式。

完全取决于系统根据其他应用程序的需要销毁您的应用程序。

当您在模拟器上运行它时,它不会破坏您的应用程序,因此,您将从您离开的Activity恢复。

但是当您在设备上运行它时,设备可能会觉得应用程序占用的内存需要被释放,因此会破坏应用程序。下次启动时,它会从头开始。