我可以在后台保持Android App活着吗?

时间:2012-03-02 23:50:47

标签: android

我目前编写了一个正常的Andorid-App(无服务)。它包含一个定期检查的计时器。为了避免服务和应用程序之间的服务和通信的麻烦,我问自己是否有办法让不再处于前台的应用程序存活。 目前,当我“关闭”应用程序时,它仍然存在,直到Android OS决定杀死它。有没有办法避免这种杀戮 - 例如通过“onDestroy”中的某个命令或某个App-flag? 我的应用程序非常复杂,我不想实现服务,因为这特别是通信/绑定 - 增加了复杂性。有一种“简单的方法”还是我真的被迫使用Service + App?也许有一个技巧来注册应用程序......具有副作用的特殊情况,即Android OS在后台时不会将其杀死。

编辑以便更好地理解:当用户需要时,GUI可以进入后台(消失),所以我的问题不是如何让我的应用程序的GUI永久保留在前台。我想要的只是计时器保持不变,无需额外的服务。

提前感谢大家的想法!

3 个答案:

答案 0 :(得分:5)

由于操作系统的杀戮选择的性质和市场的碎片化,Android非常难以预测。如果它至关重要,我不会100%依赖任何活着的东西。但是你可以赌博并且非常成功。这对您有所帮助:

  1. 使用非常好的“最佳实践”来保持你的字符串池和堆最小,因为Android首先想要杀死内存生猪(并且因为你喜欢你做的事情)。
  2. 将持久属性添加到application manifest标记。
  3. 要真正帮助自己,运行或运行服务,因为它们是长时间运行的进程,非常轻(如果实现得很好),并且Android最终会想要终止它们。
  4. 将服务作为前台服务运行,为您的服务优先。
  5. 做这些事情会增加Android不会杀死你的应用程序的可能性。

答案 1 :(得分:1)

我认为没有可用的东西。我建议使用AlarmManager查看定期任务 - 这可能意味着您不需要使用服务。

答案 2 :(得分:0)

在后台提供的应用程序只是Android操作系统的缓存措施,以避免从头开始重新启动频繁使用的应用程序。如果您希望能够依靠在后台运行的应用程序,则服务是正确的解决方案。它不是你正在寻找的答案,但我不知道在缓存中保持活力的任何技巧,如果有的话,我不会对推荐它们感觉良好。