【问题标题】:Cordova app restarts when launched from homescreenCordova 应用程序在从主屏幕启动时重新启动
【发布时间】:2014-09-10 01:19:49
【问题描述】:

我正在使用 Apache cordova(通过 Chrome 移动应用程序框架)构建一个 Android 应用程序。假设我想启动该应用程序,并且它之前已启动。有两种方法可以做到这一点:

  1. 转到主屏幕启动器并单击应用程序图标。
  2. 使用 Android 多任务按钮(最近的应用程序按钮)并点击 以这种方式应用程序。

当我执行 #1 时,应用程序完全重新启动并且我得到了 Cordova deviceready 事件,但是当我执行 #2 时,我得到了 Cordova resume 事件并且应用程序从我停止的地方恢复,而不必完全重新加载。

我怎样才能始终获得行为 #2,或者尽可能频繁地获得它?我不知道为什么应用程序的行为会因我重新输入的方式而有所不同。

【问题讨论】:

    标签: android google-chrome cordova google-chrome-app cordova-chrome-app


    【解决方案1】:

    这能解决问题吗?

    <preference name="KeepRunning" value="true"/>
    

    还要注意在 index.html 中使用 deviceready 时要小心

    【讨论】:

    • KeepRunning 略有不同——它更像是一种电池设置。鉴于所描述的从图标/切换器运行时效果不同的行为,我很确定要检查的实际设置是AndroidLaunchMode,并且最近更改了默认设置。
    • @mmocny 好的,感谢您的评论。稍后我会查看您的描述。
    【解决方案2】:

    您使用的是哪个版本的 Chrome 移动应用程序?我们修补了 cordova-android 以更改默认的 android:launchMode,它已更改为完全按照您的描述修复行为。

    我不记得登陆的确切版本,但可能是大约一个月前的某个地方。请升级 cca(使用 npm install -g cca),然后升级您的应用程序,由于有了新的 cca upgrade 命令,现在应该比最新版本更容易。

    【讨论】:

    • 我认为这是正确的解决方案(基于你所说的和我读到的)。我在 cca 0.1.0,现在我在 0.1.1。有趣的是,我在 Android 上切换了我的主屏幕启动器,问题就消失了,甚至不需要升级 cca。使用我侧载的“Google Now”启动器(来自 Nexus 5 的 apk)它有问题,但使用我的标准摩托罗拉启动器(Droid Maxx)它没有。
    • 哇,这很有趣。我们一定会留意那个。
    • @hatboysam 如果您可以使用最新的 cca 重现该问题并在自定义启动器上保持一致性,请在我们的 github 问题跟踪器上提交一个带有重现步骤的错误!
    • 好像在cca 0.1.1中修复了,奇怪的是以前版本的启动器肯定有区别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2011-10-19
    • 2011-12-26
    相关资源
    最近更新 更多