【发布时间】:2013-08-27 17:14:15
【问题描述】:
作为参考,这是在 Android 上,这是Titanium Forum Post
我在使用 Appcelerator 完成的几个应用程序中都注意到了这个问题,所有这些应用程序:无论它们是简单应用程序还是复杂应用程序,但在大型应用程序中更频繁。
例如,我正在开发一个需要每 5 分钟通知一次其位置(GPS 位置)的应用程序。该应用程序在前台工作时运行良好,但是,每次我将应用程序置于后台时(如果我使用主页按钮最小化应用程序),应用程序就会崩溃并且所有服务都停止。
为了通知应用程序,这是我正在使用的流程:
- 当我启动应用程序时,我会使用AlarmManager module 启动警报。
- 此 AlarmManager 添加一个新的警报服务,每 5 分钟触发一次。
- AlarmManager 每隔 5 分钟启动一次服务并通知服务器当前位置。
效果很好。
如果我点击“主页”按钮,应用程序有时会崩溃(在应用程序管理器上),但在前台使用其他应用程序而将此应用程序留在后台时会更频繁。
我以为这是因为主Activity停止了,所以我决定使用android:alwaysRetainTaskState="true"维护主Activity/任务状态
如果我重新打开应用程序,应用程序只会重新启动。这种情况在低端设备上比在高端设备上发生得更多,这让我认为这是一个内存问题。
我有一些问题:
- 这是预期的行为吗?
- 如果是这样,我该如何缓解这种情况(可能是本机模块/服务?)?
- 我当前的流程是执行此操作的最佳流程还是有更好的方法?
任何想法都值得赞赏。
【问题讨论】:
-
它是在实际设备上崩溃还是在模拟器上崩溃?
-
嗨,Rece!它在实际设备上崩溃,在运行或执行其他几个应用程序时更有可能崩溃(这让我认为这是内存问题)。顺便说一句,这只发生在进行位置报告时。
-
该死。很遗憾听到这个消息。我以前曾经历过像钛这样的棘手情况。唯一对我有用的是删除任何看起来太复杂/hacky的东西,并尝试以不同的方式来做。希望你能解决!
-
我的目光转向你的第二点“这个AlarmManager,添加了一个新的Alarm Service,它将每5分钟触发一次。”这很可能会产生内存问题。
标签: android titanium alarmmanager titanium-mobile appcelerator-mobile