在尝试让警报管理器处理内部通知时遇到问题。这是为应用程序的用户提供某个点的通知。
我的警报是在片段内设置的,代码如下。
Intent notificationIntent = new Intent(getContext(), DeviceBootReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getContext(), 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
int hour = Integer.parseInt(vars.getShowRapport().getFinishTime().split(":")[0]);
int min = Integer.parseInt(vars.getShowRapport().getFinishTime().split(":")[1]);
vars.getShowRapport().getFinishDate().setHours(hour);
vars.getShowRapport().getFinishDate().setMinutes(min);
long futureInMillis = System.currentTimeMillis()+1000*60;
//long futureInMillis = vars.getShowRapport().getFinishDate().getTime();
AlarmManager alarmManager = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, futureInMillis, pendingIntent);
getFragmentManager().beginTransaction().replace(R.id.makeRapportFragment,fragment).addToBackStack(null).commit();
在我的清单中我有
<receiver android:process=":remote" android:name=".DeviceBootReceiver">/receiver>
最后在我的接收器中称为DeviceBootReceiver。
NotificationCompat.Builder builder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ejservicebookincon)
.setContentTitle("Rapport finishing")
.setContentText("Rapport on item should be done.");
Intent notificationIntent = new Intent(context, ServiceRapportMain.class);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
// Add as notification
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
不知道我的问题在哪里,我的接收器似乎永远不会被激活,所以无法检查该部分是否正常工作。如果有人可以指出,我的问题在哪里,希望有所帮助。就像我正在Android Studio中工作一样。
答案 0 :(得分:0)
正如我在上面的评论中所写,我遇到的错误是我使用了AlarmManager.ELAPSED_REALTIME_WAKEUP,其中我应该使用的是AlarmManager.RTC_WAKEUP