Titanium移动应用程序在后台运行一段时间后崩溃(包括服务)

时间:2013-08-27 17:14:15

标签: android titanium alarmmanager titanium-mobile appcelerator-mobile

作为参考,这是在Android上,这是Titanium Forum Post

我注意到我使用Appcelerator完成的几个应用程序存在这个问题,无论它们是简单的应用程序还是复杂的应用程序,但在较大的应用程序中更常见。

例如,我正在处理需要每5分钟通知其位置(GPS位置)的应用程序。该应用程序在前台工作时工作正常,但是,每次我将应用程序放在后台时(如果我通过使用Home按钮最小化应用程序),应用程序就会崩溃并且所有服务都会停止。

为了通知应用程序,这是我正在使用的流程:

  1. 当我启动应用程序时,我使用AlarmManager module
  2. 启动警报
  3. 此AlarmManager添加了一个新的警报服务,每隔5分钟触发一次。
  4. 每隔5分钟,AlarmManager启动服务并通知服务器当前位置。
  5. 效果很好。

    如果我点击“主页”按钮,应用程序有时会崩溃(在应用程序管理器上),但在前台使用其他应用程序同时将此应用程序保留在后台时会更频繁。

    我认为这是因为主要的Activity已停止,所以我决定使用android:alwaysRetainTaskState="true"

    来维护主要的活动/任务状态

    如果我重新打开应用程序,应用程序只会重新启动。这种情况在低端设备上比在高端设备上发生的更多,这让我觉得这是一个内存问题。

    我有一些问题:

    1. 这是预期的行为吗?
    2. 如果是这样,我该如何缓解这种情况(可能是原生模块/服务?)?
    3. 我目前的流量是最好的流程吗?还是有更好的方法?
    4. 任何想法都非常感激。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:经过大量测试后,我们发现旧设备上的问题更频繁。

通过审查组件,元素和进行内存研究,我们发现这实际上与Android管理应用程序和内存的方式有关。

如果操作系统决定您的应用程序在后台消耗过多内存,则可以随时将其删除。无论是否正在执行警报。

对于具有更多内存(较新设备)的设备,问题就会消失。