4

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

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

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

有谁知道这种行为来自哪里或我如何解决这个问题?

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

4

3 回答 3

7

将以下代码放入根 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; 
    } 

}

来源: 应用程序总是从根活动开始,而不是恢复后台状态(已知错误)

于 2012-12-21T14:06:26.207 回答
4

将您只想显示一次的特定内容放入您的manifest文件中。android:launchMode="standard"activity

于 2012-12-21T09:32:25.563 回答
1

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

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

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

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

于 2012-12-21T09:35:20.270 回答