Android 应用程序进程终止时AlarmManager不工作

Android 应用程序进程终止时AlarmManager不工作,android,broadcastreceiver,alarmmanager,Android,Broadcastreceiver,Alarmmanager,通过与alarm manager的合作,我意识到当应用程序进程被终止时,它不起作用,但会发生错误 记录 这是我的密码: calendar.timeInMillis = System.currentTimeMillis() calendar.add(Calendar.MINUTE, 1) val intent = Intent(applicationContext, ReminderReceiver::class.java)

通过与alarm manager的合作,我意识到当应用程序进程被终止时,它不起作用,但会发生错误 记录 这是我的密码:

            calendar.timeInMillis = System.currentTimeMillis()
            calendar.add(Calendar.MINUTE, 1)
            val intent = Intent(applicationContext, ReminderReceiver::class.java)
            val pI =
                PendingIntent.getBroadcast(this, 65789, intent, PendingIntent.FLAG_CANCEL_CURRENT)
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                AlarmManagerCompat.setExact(am, AlarmManager.RTC_WAKEUP, calendar.timeInMillis, pI)
            }
这在AndroidManifest.xml中

 <receiver android:name=".RestartServiceReceiver" />


我的广播接收器根本不呼叫。

“我意识到当应用程序进程被终止时它不工作”——通常是这样,但这取决于“应用程序进程被终止”的定义(有时还取决于硬件)。“我的广播接收器根本不呼叫”--您如何确定?应用程序进程已终止意味着我从“最近”中删除应用程序,并且我确实从广播接收器中记录以确定它调用@CommonWare您可以使用
adb shell dumpsys alarm
查看您的警报是否已安排。尝试在从概览屏幕中删除应用程序之前和之后运行该功能。另外,您可以尝试通过其他方式(例如,
adb shell am kill…
,其中,
是您的应用程序ID)终止您的进程,然后看看您得到了什么。我注意到,当我在android studio中创建java项目时,这很好。我不知道它是如何工作的……这可能是那些行为不好的设备之一,它们会强制关闭最近被刷走的应用程序。“我意识到当应用程序进程被杀死时它不起作用”——通常是这样,但这取决于你对“应用程序进程被杀死”的定义(有时还取决于硬件)。“我的广播接收器根本不呼叫”--您如何确定?应用程序进程已终止意味着我从“最近”中删除应用程序,并且我确实从广播接收器中记录以确定它调用@CommonWare您可以使用
adb shell dumpsys alarm
查看您的警报是否已安排。尝试在从概览屏幕中删除应用程序之前和之后运行该功能。另外,您可以尝试通过其他方式(例如,
adb shell am kill…
,其中,
是您的应用程序ID)终止您的进程,然后看看您得到了什么。我注意到,当我在android studio中创建java项目时,这很好。我不知道它是如何工作的……这可能是那些行为不好的设备之一,它们会强制关闭最近被刷走的应用程序。