Phonegap Android应用程序重新启动而不是恢复,虽然它没有被操作系统杀死

我创build了一个Phonegap 1.5 / Android应用程序。

我的客户报告说,当他离开应用程序使用主页button,然后重新使用应用程序图标,应用程序从一开始,而不是恢复重新启动。 但是,当他拥有主页button时,应用程序会出现在最近的应用程序中,当他通过此菜单访问应用程序时,应用程序将以预期的方式恢复。

我以为这可能会被链接到应用程序被自动closures的操作系统由于缺乏内存,但如果是这样的话,应用程序不应该在最近的应用程序点击时恢复。

我无法重现与Android 2.3.4的索尼爱立信XPERIA的错误,客户已经在摩托罗拉Defy和另一个手机(我会添加其他手机和操作系统版本的参考,只要我抓住他们)。

应用程序的初始化过程是这样声明的:

window.addEventListener('load', function(){ document.addEventListener('deviceready', _onDeviceReady, false); }, false); 

这可以通过将进程附加到其他事件来解决(虽然我怀疑它,应用程序真的似乎从一开始就重新启动)?

Android Manifest中是否有声明来防止这种行为?

这是我的AndroidManifest.xml中的活动签名

  <application android:debuggable="true" android:icon="@drawable/appicon" android:label="@string/app_name" > <activity android:configChanges="orientation|keyboardHidden" android:name=".MyAppActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.phonegap.DroidGap" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden"> <intent-filter> </intent-filter> </activity> </application> 

这是一些Android手机/版本中的一个已知的错误?

编辑 :持有主页button不显示当前正在运行的应用程序,但最近的应用程序。 为什么该菜单中的行为与主图标不同?

Related of "Phonegap Android应用程序重新启动而不是恢复,虽然它没有被操作系统杀死"

您想要将以下内容添加到AndroidManifest.xml中的activity标签中:

 android:launchMode="singleTask" 

所以应该看起来像这样:

 <activity android:name="MyApp" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:launchMode="singleTask"> 

查看此页面以获取有关launchMode的更多信息: http : //www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode

嘿卢卡斯你有:

 android:configChanges="orientation|keyboardHidden" 

在你的AndroidManifest.xml中的activity标签中。

正如你所说,另一件可能发生的事情是你的客户的手机内存不足,操作系统正在杀死你的应用程序来释放内存。

这实际上是通过Androiddevise的,操作系统控制应用程序的生命周期。 你可以在这里find更多的信息 。

试一试…

在清单文件的activity标签中使用android:launchMode =“singleInstance”。

我有一个三星Galaxy Note II,我遇到了同样的问题。 所以,我修改了AndroidManifest.xml,现在它可以在三星和HTC Thunderbolt上运行。

这里是修改:

 <uses-feature android:name="android.hardware.camera" android:required="false"/> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"/> <activity android:configChanges="orientation|keyboardHidden" />