AlarmManager安排的IntentService有时会死

时间:2018-03-03 19:04:41

标签: android alarmmanager intentservice android-intentservice repeatingalarm

我有一个应用程序,每分钟都会启动一个IntentService,在此期间获取UsageStats和UsageEvents。 我使用AlarmManager的setExact()方法来设置执行IntentService的时刻,并在IntentService的onCreate方法上再次调用setExact()来安排下一分钟执行IntentService。我这样做是因为AlarmManager的方法setRepeating()在一分钟时间内没有准确执行。我使用的代码是:

alarmM.setExact(AlarmManager.ELAPSED_REALTIME,SystemClock.elapsedRealtime()+60000,alarmAppIntent);

大部分时间和设备充电时都能正确执行。但是,当设备处于正常使用状态时,有时服务会每分钟停止重复一次(每次服务执行时都会创建通知以查看服务是否继续执行)以及IntentService何时停止重复Logcat说:

03-02 12:16:02.221  1173 12379 I ActivityManager: Process com.app.usage (pid 6390) has died
03-02 12:16:02.222  1173  1423 D DisplayManagerService: Display listener for pid 6390 died.
03-02 12:16:02.222  1173 12379 D ActivityManager: SVC-handleAppDiedLocked: app = ProcessRecord{73a4530 6390:com.app.usage/u0a251}, app.pid = 6390
03-02 12:16:02.222  1173 12379 D ActivityManager: cleanUpApplicationRecord -- 6390
03-02 12:16:02.222  1173 12379 D ActivityManager: SVC-mBroadcastQueues: com.android.server.am.BroadcastQueue@e800e85
03-02 12:16:02.222  1173 12379 D ActivityManager: SVC-mBroadcastQueues: com.android.server.am.BroadcastQueue@d0e4da
03-02 12:16:02.223  2049  2306 E WtProcessController: Error pid or pid not exist
03-02 12:16:02.315  1173  1378 D PerfServiceManager: [PerfService] MESSAGE_USER_DISABLE: 92 
03-02 12:16:02.315  1173  1378 I libPerfService: [perfScnDisable] scenario:92
03-02 12:16:02.315  1173  1378 I libPerfService: 92: set max: -1, 0, -1, 
03-02 12:16:02.316  1173  1378 I libPerfService: 92: set freq: -1, -1, 933000, 
03-02 12:16:02.316  1173  1378 I libPerfService: 92: set gpu level: 0
03-02 12:16:02.447  3149  3166 I PerfService: PerfServiceNative_userEnableTimeoutMs:30, 1050
03-02 12:16:02.448  3149  3166 I PerfService: PerfServiceNative_notifyDisplayType:2

我使用的设备是MIUI 9.2(Android 6.0)的小米Redmi Note 4 Pro。我试图在应用程序中没有设置省电器,但问题还在继续。

有没有办法阻止应用程序使用其他库或配置死亡?

0 个答案:

没有答案