1
我的AlarmManager似乎没有工作。Android通知AlarmManager和BroadcastReceiver
这是我设置的报警代码:
Intent intent1 = new Intent(this, Notify.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) this.getSystemService(this.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.MINUTE, 20);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, pendingIntent);
这是我Notify
类:
public class Notify extends BroadcastReceiver {
public static final int uniqueID=3657554;
@Override
public void onReceive(Context context, Intent intent) {
NotificationCompat.Builder n=new NotificationCompat.Builder(context);
n.setAutoCancel(true);
n.setSmallIcon(R.mipmap.ic_launcher);
n.setTicker("ticker");
n.setWhen(System.currentTimeMillis());
n.setContentTitle("title");
n.setContentText("text");
Intent it=new Intent(context,ListAll.class);
PendingIntent pi=PendingIntent.getBroadcast(context,0, it,0);
n.setContentIntent(pi);
((NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE)).notify(uniqueID,n.build());
}
}
而在我的清单我有以下几点:
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<receiver android:name=".Notify" android:enabled="true" />
我没有任何例外,但通知未显示。
是在'calendar.getTimeInMillis()'触发或者是24小时之后即假设第一个报警?我在时间更改后尝试了您的代码,但通知未显示。 – EllenS
我的代码中的闹钟在晚上8点启动,并且每24小时重复一次,您可以根据需要更改它的时间 – SaNtoRiaN
嘿,您必须在设备设置中更改时间时遇到问题。当我设置晚上8点时,没有真正的时间报警。你可以帮我吗。 – QuestionAndroid