从最近删除应用程序时后台服务停止
Posted
技术标签:
【中文标题】从最近删除应用程序时后台服务停止【英文标题】:Background Service Stop when removing app from recent 【发布时间】:2018-11-10 08:59:52 【问题描述】:后台服务停止,从最近的 oppo 和 vivo 手机中删除我的应用程序时,广播接收器在这种情况下也无法正常工作。
【问题讨论】:
很高兴知道。谢谢。 主要是因为他们希望自己的手机在电池消耗方面表现出色,用户会根据电池消耗来判断他们的公司,而不是应用在其上运行的好坏 请发布您的清单 如何解决问题。我在广播接收器中面临同样的问题 @YogeshPaliyal 您的解决方案是否也适用于最新的 android 版本?报警管理器在最新的 Android 版本中没有问题吗? 【参考方案1】:我在 Oppo、Vivo、Mi 等手机上遇到过同样的问题,
-
从最近的应用程序中删除后,应用程序被杀死,甚至服务也被杀死
解决方案:我在我的应用程序中添加了 this 之类的自动启动权限,它起作用了。
解决此问题后,由于打盹模式,我的应用程序在后台运行一段时间后被冻结/杀死 解决方案:对于这种情况this 工作,现在我的应用程序在任何设备的后台运行
完成上述操作后:
intent.setClassName("com.coloros.oppoguardelf", "com.coloros.powermanager.fuelgaue.PowerConsumptionActivity"); 开始活动(意图);
调用上述意图,它会将您重定向到电池选项,“禁用后台冻结,异常应用优化和打盹来自\“节能器->youAPP”
注意:调用上述意图后,您可能会获得不同的选项来关闭省电选项。
【讨论】:
它不适用于 Vivo 设备。你能帮帮我吗? 好的,请注明您使用的设备,我可以进一步提供帮助 请更新您的错误信息,或在聊天中 ping 我 试过了,但是在oppo上不行。还有其他解决方案吗? 您面临的问题是什么【参考方案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 不起作用,我提到的解决方案作为答案【参考方案3】:您需要让您的用户在他们的设置中将您的应用列入白名单,这样它才能在这些手机上运行。这些手机上的自定义操作系统只允许whatsapp、fb等白名单应用在后台运行,其他应用必须从设置中手动加入白名单
【讨论】:
甚至广播接收器?【参考方案4】:是的。 如果您希望服务重新开始,您需要将其配置为“粘性”: https://developer.android.com/reference/android/app/Service.html#START_STICKY
这样做后,按照接受的答案,它会工作。
【讨论】:
所提到的设备行为不同,因为这个 START_STICKY 不起作用,我提到的解决方案作为答案以上是关于从最近删除应用程序时后台服务停止的主要内容,如果未能解决你的问题,请参考以下文章