4

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

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

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

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

我很确定我错过了一些东西,有没有人知道如何让进程/线程在这个“内存清理”按钮中存活下来?提前致谢。

4

1 回答 1

2

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

请摆脱额外的过程。它不会为您增加任何价值,而且会浪费 CPU、RAM 和电池。

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

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

我很确定我错过了一些东西,有没有人知道如何让进程/线程在这个“内存清理”按钮中存活下来?

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

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

于 2012-04-23T11:19:54.783 回答