从最近删除应用程序时后台服务停止

Background Service Stop when removing app from recent

后台服务停止,当我从最近的 oppo 和 vivo 手机中删除我的应用程序时,广播接收器在这种情况下也无法正常工作。

是的。
如果您希望服务重新启动,您需要将其配置为 'sticky':
https://developer.android.com/reference/android/app/Service.html#START_STICKY

这样做之后,按照接受的答案进行操作,它将起作用。

您需要让您的用户在他们的设置中将您的应用列入白名单,以便它在这些手机上运行。这些手机上的自定义 OS 仅允许 whatsapp、fb 等列入白名单的应用程序在后台运行,其他应用程序必须从设置中手动列入白名单

是的,你必须 return START_STICKY;

请参考这个 link :

https://www.tutorialspoint.com/android/android_services.htm

示例:

public class MyService extends Service {

@Nullable

@Override
   public IBinder onBind(Intent intent) 
{
  return null;
   }

   @Override
   public int onStartCommand(Intent intent, int flags, int startId) 

{

  // Let it continue running until it is stopped.

Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
      return START_STICKY;

   }

   @Override
   public void onDestroy() {

 super.onDestroy();

Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();

 }
}

我在 Oppo、Vivo、Mi 等手机上遇到了同样的问题,

  1. 从最近的应用程序中删除后,应用程序被杀死,甚至服务也被杀死

解决方案:我在我的应用程序中添加了 之类的自动启动权限并且有效。

  1. 解决此问题后,由于 DOZE 模式,我的应用在 运行 一段时间后进入后台 frozen/killed 解决方案:对于这种情况 有效,现在我的应用程序可以在任何设备的后台运行

  2. 完成上述操作后:

intent.setClassName("com.coloros.oppoguardelf", "com.coloros.powermanager.fuelgaue.PowerConsumptionActivity"); 开始活动(意图);

调用上面的意图,它会将您重定向到电池选项,"Disable Background Freeze, Abnormal Apps Optimization and Doze from \"Energy Saver ->youAPP"

注意:调用上述 Intent 后,您可能会看到不同的选项来关闭省电选项。