我有一个WakefulBroadcastReceiver
IntentService
,每隔半小时就会报警并做一些事情。
我已经使用setExactAndAllowWhileIdle()
方法处理了打盹模式。
最近在市场上推出了一些定制操作系统的新智能手机,他们有自己的定制操作系统 基于android os。像oppo与颜色os,vivo与funtouch os,xiomi与MIUI os。在操作系统中 有一个清除记忆的功能。他们有一个触摸清除内存选项。例如,如果用户清除最近的应用列表 或从最近的应用程序列表应用程序的所有后台服务中删除应用程序以及所有警报将被终止。
如何使用这些新操作系统?
答案 0 :(得分:17)
对于 MIUI 手机,您需要关闭省电模式,然后您的应用可以在后台运行。
程序:转到设置 - &gt; <强>电池强> - &GT; 管理应用的电池使用情况 - &gt;点击关闭或选择您的应用
<强>编程强>:
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);
这对我有用,希望这也适合你:)
答案 1 :(得分:4)
如果您的应用因为从最近的应用列表中清除而导致应用被终止,您可以覆盖android.app.Service.onTaskRemoved()
以安排重新启动应用或类似操作。
在用户明确采取行动杀死您的应用的所有其他情况下(例如,从设置中执行“强行停止”) - 就这样吧。不要试图解决这个问题。用户想杀死你的应用。让它死掉,并在用户下次再次启动应用程序时恢复功能。
答案 2 :(得分:-1)
尝试在不同的过程中运行您的服务。
<service android:name=".YourBackgroundService"
android:process=":service">