休眠后,Android应用程序在kindle fire上关闭

Posted

技术标签:

【中文标题】休眠后,Android应用程序在kindle fire上关闭【英文标题】:Android app close on kindle fire after hibernate 【发布时间】:2013-06-11 18:02:10 【问题描述】:

我的应用在 Kindle Fire 上出现问题。

我没有自己的设备,但应用程序审核者(以及我的一位为我测试的朋友)在应用程序关闭时遇到问题,从休眠状态出来后没有错误消息。

确切的问题是,如果您在纵向模式下休眠,然后在将设备移动到横向模式后退出休眠模式,它只会显示主屏幕。没有强制关闭或任何东西。

有趣的是,如果您在应用程序中的另一个活动中(它只有 2 个屏幕),它工作得很好。主菜单活动就是发生这种情况的活动。我已经检查了这两个活动的 onResume 并且它们是相同的。不过,主菜单屏幕是一个 ListActivity。这可能是问题的一部分吗?

改变方向后恢复时,是否再次调用OnCreate?

我希望有人能指出我正确的方向,因为我唯一的测试方法是重新提交并将 APK 发送给海外朋友。

【问题讨论】:

很难纠正无法重现的问题。您将需要一个堆栈跟踪来解决这个问题。您可以通过捕获日志与您的朋友(或客户)交谈,或尝试使用 Kindle 模拟器重现它。 developer.amazon.com/sdk/fire/emulator-guide.html 他们给我发了日志,但我找不到任何有用的东西。 pastebin.com/GB4FNiZG 我的应用程序的包名称是 com.selfstudyapps.photo.guide 这应该有助于找到与之相关的最后一个条目。它暂停了,然后什么也没有。没有迹象表明它试图回来并失败。 【参考方案1】:

我有一个类似的问题,一些复杂的 Kindle 带有休眠和改变方向。令人沮丧的是,我什至无法点燃 Kindle,因为它们不运往我的国家。

我可以为您回答的一点是“改变方向后恢复时,是否再次调用 OnCreate?”我对以下指南的理解是,未调用 onCreate,但您必须在恢复和暂停时使用。

"您的应用必须考虑 Kindle Fire 上的休眠——无论是用户启动的休眠还是屏幕超时后发生的休眠。与快速设置优化类似,休眠优化需要正确处理 onPause() 和 onResume()方法。”

来自 https://developer.amazon.com/post/Tx385PNGJFMEB4R/Managing-Hibernation-Top-10-App-Optimizations-for-Kindle-Fire.html

我真的很纠结 Kindle 模拟器,大多数时候无法启动它。

【讨论】:

【参考方案2】:

我也遇到了同样的问题。 这是因为在 Kindle fire 上,如果用户休眠,改变方向并退出休眠,onConfigurationChanged() 方法会在 onResume() 之前调用。

这是亚马逊在 android 上的碎片化问题。

作为一种解决方法,我声明了两个布尔值 isPaused 和 isActivityNeedReconstructionAfterConfigChange。

代码如下所示: 无效 onPause()

isPaused = true;

无效 onResume()

if (isPaused && isActivityNeedReconstructionAfterConfigChange)

//do what you do in onConfigurationChanged()

isPaused = false;

无效 onConfigurationChanged()

isActivityNeedReconstructionAfterConfigChange = true;

if(!isPaused)

   isActivityNeedReconstructionAfterConfigChange = false;

   //do what you do in onConfigurationChanged()

【讨论】:

以上是关于休眠后,Android应用程序在kindle fire上关闭的主要内容,如果未能解决你的问题,请参考以下文章

kindle wifi网页登陆

Android:如何删除 Amazon AppStore 和 Kindle 的地图功能

如何区分 Android 应用程序是不是在 Amazon Kindle Fire 上运行?

如何在 Android 中放置正确的应用程序图标大小,包括 Amazon Kindle Fire?

光子。在 Android 上重启 WI-FI 后 OnRoomListUpdate 不起作用

Kindle Fire 推送通知示例应用程序