我正在遵循here中列出的有关使用Foreground服务的文档。 现在,是这样:
ContextCompat.startForegroundService(mainActivity, new Intent(getContext(), MyService.class));
要从活动中启动服务。
startForeground(NOTIFICATION_ID, notification);
要在Service类的前台启动服务,然后...
stopForeground(true);
停止服务并删除通知。
问题出在某些设备上,因为我看到运行的Android 8.0.1性能低下。发生的情况是PowerSave Manager(我认为是原因)阻止了所有操作。
我找到的日志(未链接到应用程序,我必须在系统日志中进行搜索)是:
2019-01-29 16:44:00.732 11511-11581 / com.macoev.nanana D / com.facebook.FacebookSdk:getGraphApiVersion:v3.2 2019-01-29 16:44:03.126 17579-17579 /? I / PowerSaveService:forceStopThirdApp进程名称:com.macoev.nanana pid:11511,程序包名称:com.macoev.nanana 2019-01-29 16:44:03.128 17579-17579 /? D / PowerSaveService:forceStopPackage确实杀死了进程-com.macoev.nanana 2019-01-29 16:44:03.130 2104-3251 /? I / ActivityManager:从pid 17579强制停止com.macoev.nanana appid = 10249 user = 0: 2019-01-29 16:44:03.130 2104-3251 /? I / ActivityManager:杀死11511:com.macoev.nanana / u0a249(adj 200):停止com.macoev.nanana 2019-01-29 16:44:03.135 2104-3251 /? W / ActivityManager:计划在1000毫秒内重新启动崩溃的服务com.macoev.nanana / .service.KillNotificationService 2019-01-29 16:44:03.136 2104-3251 /? W / ActivityManager:计划在10999毫秒内重新启动崩溃的服务com.macoev.nanana / .service.AudioService 2019-01-29 16:44:03.141 2104-3251 /? I / ActivityManager:强制完成活动ActivityRecord {a1d74d6 u0 com.macoev.nanana / .MainActivity_ t8336} 2019-01-29 16:44:03.146 2104-3251 /? I / ActivityManager:强制停止服务ServiceRecord {87dc9b2 u0 com.macoev.nanana / .service.KillNotificationService} 2019-01-29 16:44:03.159 2406-2406 /? D / StatusBar:onNotification已移除:StatusBarNotification(pkg = com.macoev.nanana user = UserHandle {0} id = 2 tag = null key = 0 | com.macoev.nanana | 2 | null | 10249:Notification(channel = NaNaNa Channel pri = 2 contentView =无效振动=无效声音=无效默认值= 0x0标志= 0x72颜色= 0xffef5323类别=服务操作= 3 vis = PUBLIC)) 2019-01-29 16:44:03.169 2406-2406 /? D / StatusBar:removeNotification键= 0 | com.macoev.nanana | 2 | null | 10249 old = StatusBarNotification(pkg = com.macoev.nanana user = UserHandle {0} id = 2 tag = Null key = 0 | com.macoev .nanana | 2 | null | 10249:通知(频道= NaNaNa频道pri = 2 contentView =无效振动=无效声音=无效默认值= 0x0标志= 0x72颜色= 0xffef5323类别=服务操作= 3 vis = PUBLIC)) 2019-01-29 16:44:03.250 2104-5518 /? I / PowerSave:addHistoryWakeLocks packageName:com.macoev.nanana,标签:com.macoev.nanana:ExoPlayer
应用程序的pkg为
ccom.macoev.nanana
我不明白如何避免PowerSave管理器在此处停止所有操作。 我也尝试通过添加
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, BuildConfig.APPLICATION_ID + ":PARTIAL_WAKE_LOCK_TAG");
wakeLock.acquire();
无结果。 任何帮助将不胜感激。 预先感谢!