从最近应用程序中移除应用,后台服务停止。

7

在Oppo和Vivo手机上,当我从最近使用的应用程序中删除我的应用程序时,后台服务会停止,并且广播接收器也无法工作。


6
知道这件事情真是太好了。谢谢你。 - greenapps
1
大部分是因为他们希望其手机在电池消耗方面表现出色,用户会以电池消耗为评判标准,而不是应用程序在其上运行的好坏。 - Suhaib Roomy
1
请发布您的清单。 - David Wasser
2
如何解决问题。我在广播接收器中遇到了同样的问题。 - Sachin Singh
1
@YogeshPaliyal 您的解决方案也适用于最新的Android版本吗?Alarm Manager在最新的Android版本中是否存在问题? - venkat
显示剩余5条评论
4个回答

4

我曾经遇到过Oppo、Vivo、Mi等手机的同样问题,

  1. 即使将应用程序从最近使用中删除,应用程序仍然会被关闭,甚至服务也会被关闭。

解决方法:我在我的应用程序中添加了自启动权限,就像这样,它起作用了。

  1. 在解决了这个问题之后,我的应用程序在后台运行一段时间后会被冻结/关闭,因为进入了DOZE模式。

    解决方法:对于这种情况,这个方法有效,在任何设备上都可以在后台运行我的应用程序。
  2. 在进行以上操作之后,执行以下步骤:

intent.setClassName("com.coloros.oppoguardelf", "com.coloros.powermanager.fuelgaue.PowerConsumptionActivity"); startActivity(intent);

调用以上意图,它将重定向到电池选项,“从“节能助手”中禁用背景冻结、异常应用程序优化和Doze”

注意:一旦您调用以上意图,您可能会得到不同的选项来关闭省电选项。


在Vivo设备上它对我不起作用。你能帮我吗? - Pooja Shukla
当然,请告诉我您使用的设备,这样我才能提供更进一步的帮助。 - Amin Pinjari
请更新您的错误信息,或在聊天中与我联系。 - Amin Pinjari
尝试过了,但在Oppo上没有起作用。还有其他解决方案吗? - Edijae Crusar
你遇到了什么问题? - Amin Pinjari
遗憾的是,这可能在某些设备上有效,但仍然无法在OPPO设备上工作。我已经在运行Android 6.0(ColorOS 3.0)的OPPO A1601上进行了测试。尽管我已经将应用程序列入“自动启动”和“省电模式白名单”,但当我调用isIgnoringBatteryOptimizations()时,它仍然总是返回false,并且如果我从最近的列表中删除该应用程序,它仍然会被杀死。最奇怪的是,页面Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS不存在!看起来OPPO没有遵循有关“DOZE模式”的标准,他们只是粗暴地杀死最近的应用程序。 - Lynch Chen

2

是的,您需要返回START_STICKY;

请参考此链接:

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();

 }
}

提到的设备行为不同,因此START_STICKY无法起作用,我已经在答案中提到了解决方案。 - Amin Pinjari

1

提到的设备行为不同,因此START_STICKY无法起作用,我已经在答案中提到了解决方案。 - Amin Pinjari

1

为了让您的应用程序在这些手机上正常工作,您需要要求用户在设置中将其添加到白名单中。这些手机上的自定义操作系统只允许像WhatsApp、FB等已列入白名单的应用程序在后台运行,其他应用程序必须手动添加到白名单中。


甚至广播接收器? - Suhaib Roomy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接