在Memory Clean中幸存的Android应用程序

时间:2012-04-23 07:33:28

标签: android android-intent

我正在尝试编写一个必须始终运行后台线程的应用程序。 (是的,我知道这不是推荐,但这个应用程序不是为普通市场和背景线程设计的唯一方法!)

所以我创建一个服务(作为一个新进程)以前台模式启动它。在服务中,我将启动一个监视系统Logcat输出的线程。

所以一切正常,直到有人进入任务管理器并点击“清除内存”按钮。

不幸的是,我找不到任何可能在这个记忆清洁中存活下来。 我已经尝试了各种方法让服务幸存下来,我甚至试图为AlarmManager设置一个重复的警报,但即使这样也会被取消。

我很确定我错过了什么,有没有人知道如何让一个进程/线程在这个“Memory Clean”按钮中存活下来? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

  

所以我创建了一个服务(作为一个新的进程)

请摆脱额外的过程。它没有给你增加任何价值,它浪费CPU,RAM和电池。

  

所以一切正常,直到有人进入任务管理器并点击“清除内存”按钮。

Android中没有“任务管理器”,Android中没有“清除内存”按钮。您可能正在考虑由特定设备制造商添加的内容。

  

我很确定我错过了什么,有没有人知道如何让一个进程/线程能够在“Memory Clean”按钮中存活?

如果“内存清理”与“设置”中正在运行的应用列表中的“强制停止”相同,则无法“让进程/线程生存”。欢迎用户终止她希望的任何申请。事实上,在Android 3.1+上,“强制停止”意味着您的应用程序永远不会再次运行,除非用户稍后手动启动您的某项活动。

欢迎您使用自己的本机代码守护进程创建自己的固件,并且不能“强制停止”。但是,作为标准SDK应用程序安装的任何内容都可以强制停止。