安卓Phonegap应用程序正确恢复的方式是什么?

7

我不确定这个是否是预期的行为,是否是一个错误和是否有解决方法。

当用户在我们的Android Phonegap应用程序中点击主页按钮时,应用程序会正确地最小化。但当用户点击图标重新启动应用程序时,它会从头开始重新启动,这是不可取的。

当用户通过单击主页按钮将应用程序最小化后,有两种方式可以使应用程序恢复到其上次状态:

  1. 长按主页按钮并点击应用程序将恢复应用程序至其上次状态。
  2. 点击状态栏中的通知(推送通知)将恢复应用程序至其上次状态。

所以我的问题是,当用户从桌面上点击应用程序图标时,我们需要做些什么才能以与上述两个项目相同的方式恢复应用程序?如上所述,应用程序正在运行并且健康。

如果有帮助,将不胜感激。谢谢!


我其实无法重现这个问题。你能提供更多细节吗? - Simon MacDonald
我很担心这个问题。我猜测我们的构建中出了问题,因为我没有看到其他类似的问题。问题实际上归结为每次用户从应用托盘或主屏幕点击应用图标时,应用程序都会重新启动。闪屏和一切都是如此。这是预期的行为吗?如果您长按主页按钮并从正在运行的应用程序列表中选择应用程序,则应用程序会以最小化状态弹回。这就是我们想要的。我们不确定哪里出了问题。 - Ryan Martin
Ryan,你应该直接给我发电子邮件“simon [dot] macdonald [at] gmail [dot] com”。我可能需要查看你的manifest.xml文件和扩展DroidGap的主类。这似乎是一个非常具体的问题。 - Simon MacDonald
谢谢,西蒙。非常感谢你的帮助。我会给你发一封电子邮件,提供更具体的信息。 - Ryan Martin
Ryan,这个问题解决了吗?我也遇到了完全相同的问题。我找到了几个其他人问过的相关问题,但似乎没有一个有答案。 - Kevin Cooper
是的,我们最终解决了问题,但我现在手头没有代码。所选答案应该会对你有帮助——它看起来非常类似于帮助我们解决问题的解决方案。 - Ryan Martin
1个回答

2
我遇到了同样的问题。当我点击应用程序图标以重新启动已在后台运行的应用程序时,我的应用程序会重新启动。
基本上,如果将android:launchMode设置为standard或未设置,则会为该应用程序创建一个新的意图,并且不会恢复旧的暂停状态。
因此,我发现最好的方法是在AndroidManifest.xml中的内应用android:launchMode="singleTask"。
请考虑以下示例:
 <activity android:name="Example" android:label="@string/app_name"
                 android:theme="@android:style/Theme.Black.NoTitleBar"
               android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
                 android:launchMode="singleTask">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接