15

我有一个WakefulBroadcastReceiverIntentService每半小时报警一次并做一些事情。我已经用setExactAndAllowWhileIdle()方法处理了打瞌睡模式。

最近在市场上推出了一些带有定制操作系统的新智能手机,它们有自己的基于安卓操作系统的定制操作系统。比如OPPO用color os,vivo用funtouch os,xiomi用MIUI os。在操作系统中,有一个功能可以清除内存。他们有一键清除记忆选项。例如,如果用户清除最近的应用程序列表或从最近的应用程序列表中删除应用程序,应用程序的所有后台服务以及所有警报都将被终止。

如何使用这些新操作系统?

4

3 回答 3

17

对于MIUI手机,您需要关闭省电模式,然后您的应用才能在后台运行。

程序:进入设置->电池->管理应用的电池使用-> 点击关闭选择您的应用

以编程方式

 Intent intent = new Intent();
 intent.setClassName("com.miui.powerkeeper",
        "com.miui.powerkeeper.ui.HiddenAppsContainerManagementActivity");
 startActivity(intent);

对于Oppo设备,请执行以下步骤:

  1. Settings -> Battery -> Your App -> Disallow both options

以编程方式

Intent intent = new Intent();
intent.setClassName("com.coloros.oppoguardelf",
       "com.coloros.powermanager.fuelgaue.PowerConsumptionActivity");
startActivity(intent);
  1. 安全->隐私权限->启动管理器->允许您的应用程序

以编程方式

Intent intent = new Intent();
intent.setClassName("com.coloros.safecenter",  
       "com.coloros.safecenter.permission.startup.StartupAppListActivity");
startActivity(intent);
  1. 将应用程序向下拖动,将其锁定最近应用程序的选项卡中。

这对我有用,希望这对你也有用:)

于 2017-07-19T11:05:09.737 回答
4

对于由于从最近的应用程序列表中清除它而导致您的应用程序被终止的情况,您可以覆盖android.app.Service.onTaskRemoved()以安排应用程序重新启动或类似操作。

在用户明确采取行动杀死您的应用程序的所有其他情况下(例如,从设置中执行“强制停止”)——就这样吧。不要试图解决这个问题。用户想要杀死你的应用程序。让它死掉,并在用户下次再次启动应用程序时恢复功能。

于 2017-01-23T10:36:24.357 回答
-2

尝试在不同的进程中运行您的服务。

<service android:name=".YourBackgroundService"
        android:process=":service">
于 2018-02-16T05:29:25.553 回答