我有一个WakefulBroadcastReceiver
和IntentService
,每半小时就会调用一次警报并做一些事情。我已经用setExactAndAllowWhileIdle()
方法处理了瞌睡模式。
最近市场上推出了一些带有定制操作系统的新智能手机,他们有自己的定制操作系统基于android操作系统。像oppo配彩色os,vivo配funtouch os,秀米配MIUI os。在操作系统中有一个功能可以清除记忆。它们有一键清除记忆选项。例如,如果用户清除了最近的应用程序列表或者从最近的应用程序列表中删除应用程序。应用程序的所有后台服务以及所有警报都将被杀死。
如何使用这些新操作系统?
对于MIUI手机,您需要关闭省电模式,然后您的应用程序才能在后台运行。
程序:转到设置->电池>管理应用程序的电池使用情况->单击关闭或选择您的应用程序
编程:
Intent intent = new Intent();
intent.setClassName("com.miui.powerkeeper",
"com.miui.powerkeeper.ui.HiddenAppsContainerManagementActivity");
startActivity(intent);
对于Oppo设备,请遵循以下步骤:
- 设置->电池->您的应用程序>>禁用这两个选项
编程:
Intent intent = new Intent();
intent.setClassName("com.coloros.oppoguardelf",
"com.coloros.powermanager.fuelgaue.PowerConsumptionActivity");
startActivity(intent);
- 安全->隐私权限->启动经理>允许您的应用
编程:
Intent intent = new Intent();
intent.setClassName("com.coloros.safecenter",
"com.coloros.safecenter.permission.startup.StartupAppListActivity");
startActivity(intent);
- 通过向下拖动锁定最近应用程序选项卡中的应用程序
这对我有效,希望这对你也有效:)
如果您的应用程序因从最近的应用程序列表中清除而被终止,您可以覆盖android.app.Service.onTaskRemoved()
以安排应用程序重新启动或类似操作。
在所有其他情况下,如果用户明确采取行动杀死你的应用程序(例如从设置中"强制停止"),那就顺其自然吧。不要试图绕过这一点。用户想要终止你的应用程序。让它死掉,并在用户下次再次启动应用程序时恢复功能。
尝试在不同的进程中运行服务。
<service android:name=".YourBackgroundService"
android:process=":service">