Android 警报触发通知
Android alarm to trigger notification
我需要 Android AlarmManager 来触发通知。
我按如下方式创建闹钟:
private void createAlarm() {
AlarmManager mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent mNotificationReceiverIntent = new Intent(MainActivity.this,AlarmNotificationReceiver.class);
PendingIntent mNotificationReceiverPendingIntent =
PendingIntent.getBroadcast(MainActivity.this,0,mNotificationReceiverIntent,PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.setRepeating(AlarmManager.RTC, SystemClock.currentThreadTimeMillis()
+ ALARM_DELAY, ALARM_DELAY, mNotificationReceiverPendingIntent);
Log.i(TAG,"Alarm created");
}
AlarmNotificationReceiver 是
public class AlarmNotificationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG,"Alarm Notification received");
}
}
不过我从来没有看到日志消息。我已经看到使用 "adb shell dumpsys alarm":
触发警报
u0a54:de.fabian_nick.dailyselfie +709ms running, 0 wakeups:
+709ms 0 wakes 12 alarms: *alarm*:de.fabian_nick.dailyselfie/.AlarmNotificationReceiver
(至少如果我没看错的话)。
所以我假设我创建的 PendingIntent 出于某种原因没有被 BroadcastReceiver 接收。我的代码有什么问题?
我需要添加
<receiver android:name=".AlarmNotificationReceiver"></receiver>
给我的 AndroidManifest.xml
在您的 AndroidManifest.xml
中添加以下行
<receiver
android:name="AlarmNotificationReceiver "
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
我需要 Android AlarmManager 来触发通知。
我按如下方式创建闹钟:
private void createAlarm() {
AlarmManager mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent mNotificationReceiverIntent = new Intent(MainActivity.this,AlarmNotificationReceiver.class);
PendingIntent mNotificationReceiverPendingIntent =
PendingIntent.getBroadcast(MainActivity.this,0,mNotificationReceiverIntent,PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.setRepeating(AlarmManager.RTC, SystemClock.currentThreadTimeMillis()
+ ALARM_DELAY, ALARM_DELAY, mNotificationReceiverPendingIntent);
Log.i(TAG,"Alarm created");
}
AlarmNotificationReceiver 是
public class AlarmNotificationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG,"Alarm Notification received");
}
}
不过我从来没有看到日志消息。我已经看到使用 "adb shell dumpsys alarm":
触发警报 u0a54:de.fabian_nick.dailyselfie +709ms running, 0 wakeups:
+709ms 0 wakes 12 alarms: *alarm*:de.fabian_nick.dailyselfie/.AlarmNotificationReceiver
(至少如果我没看错的话)。 所以我假设我创建的 PendingIntent 出于某种原因没有被 BroadcastReceiver 接收。我的代码有什么问题?
我需要添加
<receiver android:name=".AlarmNotificationReceiver"></receiver>
给我的 AndroidManifest.xml
在您的 AndroidManifest.xml
中添加以下行<receiver
android:name="AlarmNotificationReceiver "
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>