在Ice Cream Sandwich(ICS)上,操作系统将您的应用程序分类,并且每个类别都有其自己的阈值,在该阈值中,操作系统使用它来确定哪个应用程序在内存不足时首先关闭。
你们中是否有人生气过,比如说您打开了一个计时器在后台运行以测量某事的时间,然后又打开了几个应用程序并回到计时器,只是看到它已重置或关闭?我的意思是说,真的,这确实令人讨厌。
是否有一种方法可以强制应用程序即使在操作系统内存不足时也可以在后台继续运行?
在Ice Cream Sandwich(ICS)上,操作系统将您的应用程序分类,并且每个类别都有其自己的阈值,在该阈值中,操作系统使用它来确定哪个应用程序在内存不足时首先关闭。
你们中是否有人生气过,比如说您打开了一个计时器在后台运行以测量某事的时间,然后又打开了几个应用程序并回到计时器,只是看到它已重置或关闭?我的意思是说,真的,这确实令人讨厌。
是否有一种方法可以强制应用程序即使在操作系统内存不足时也可以在后台继续运行?
Answers:
接受的答案原来是不正确或过时的。Xposed应用程序的“应用程序设置”模块允许您基于每个应用程序指定以防止应用程序被杀死或释放:
http://repo.xposed.info/module/de.robv.android.xposed.installer
http://repo.xposed.info/module/de.robv.android.xposed.mods.appsettings
在玩更改此类低级行为的应用程序时,当然应谨慎负责。
简单的答案:否。Android始终使用OOM(内存不足)优先级来释放未使用的内存。您可以使用某些任务管理器更改应用程序的优先级(至少在重新启动之前),但即使那样,如果内存不足,后台的应用程序也会开始被杀死。
考虑这种情况:您下载了一个编码错误的应用程序,该应用程序在启动时运行,会导致缓冲区溢出并占用所有内存。通常情况下,此应用会被杀死,但是如果将其设置为保持打开状态,则会有效地阻塞您的手机,直到重新启动为止,然后重新启动,等等。
某些计时器使用优先级较高的服务来避免此问题,但是如果在计时器处于后台时启动足够的高性能,占用资源的应用程序,最终将被杀死。
不会。但是,我想到了两种缓解问题的方法,但这两种方法都只能由开发人员实施:第一种是显示通知,Android将使执行此操作的应用程序比其他应用程序具有更高的优先级。第二个是保存开始时间,因此当计时器最终重新启动时,不会被重置。
onSaveInstanceState
并onRestoreInstanceState
保护App状态(包括计时器信息)即可。无需在前景中运行。即使是警报,您也可以使用它AlarmManager
来确保稍后执行。应该使用前景的唯一原因是:1.您正在进行一些实际的前景活动,例如播放音乐或播放视频。2.您想保持数据连接打开(例如,IMAP IDLE(推))。
第一种方法:-如果您在程序中创建了粘滞线程,可以,可以强制使程序继续运行。但是请记住,处于高级设置模式的用户可以停止后台运行的应用程序。但是,如果您以在发生任何Give事件时开始启动粘滞线程的方式编写粘滞线程,则可以实现此目的。
第二种方法:如果用户不是扎根的android,并且您想在后台运行应用程序。在应用程序的后台使用SL4脚本。使用脚本进行后台检查和程序,并编写前端以显示其他内容。
例如:在大多数游戏引擎中,这是内置的。即使用户关闭了应用程序,它们也连接到服务器。引擎在电话中创建多个脚本的原因(在任何特定事件下都会对其进行随机检查),并且使用TRIGGER在前景背景上连续运行您的应用。
***很抱歉,TYPO的..拼写检查器不可用。希望你实现你想要得到的。
有时可以选择锁定应用程序。这样可以防止在手机中杀死或停止该应用程序。
锁定选项在操作系统本身中不可用,使用某些第三方应用程序(如GO Task Manager等)可以提供帮助。