我有重要的提醒是通过警报管理器( 它应该与闹钟应用程序的功能相同) 设置的。
以前我在我的Android清单中有以下内容:
广播接收器:public class AlarmReceiver extends BroadcastReceiver {
@Override public void onReceive(
final Context context,
final Intent intent) {
//WAKE LOCK
//BUILD NOTIFICATION etc...
}
}
如何设置警报:final PendingIntent operation = PendingIntent.getBroadcast(
mContext,
requestCode,
intent,
PendingIntent.FLAG_CANCEL_CURRENT);
if (PlatformUtils.hasMarshmallow()) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, triggerAtMillis, operation);
} else {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, triggerAtMillis, operation);
}
}
在Android中,我不能再使用隐式广播作为清单中的定义。 没错,给出的替代方法是手动的register,如下所示:final BroadcastReceiver receiver = new AlarmReceiver();
final IntentFilter intentFilter = new IntentFilter(ALARM_RECEIVER_INTENT_TRIGGER);
context.registerReceiver(receiver, intentFilter);
这对我来说似乎不符合逻辑。
警报接收器将被绑定到上下文的生存期。 当应用程序因内存压力或者设备重新启动而被杀死时,这导致了一个问题。 我每次都需要我的警报,因为它们对用户的健康至关重要。
即使我听 "。android 。intent 。action 。boot_completed"和 register,我的闹钟也很快被杀死,而且没有触发警报。 我也没有看到我的闹钟
adb shell dumpsys警报
如何创建一个自定义广播接收器,该接收器接收一个隐式广播来激发( 8.0 )的警报。 有人能给我一个代码示例或者链接到文档。 如何在定位时及时或者任何其他闹钟应用功能?