的android我要在指定的時間使用廣播接收器和AlaramManager設置報警並實現在指定的時間(一天)的通知。如何在AlaramManger和廣播接收器
它報警指定的時間。當我運行應用程序後,即使它不是我設置的時間,它也會再次報警。
換句話說,當我在9:21 pm設置鬧鐘並在9點21分後運行應用程序時,會生成通知。
我只是想在指定的時間發出警報通知,我設置和應用程序不運行。 另外,當我運行該應用程序時,它不報警。
我該如何解決?
這是我的廣播接收器代碼 -
public class BroadcastD extends BroadcastReceiver{
Context context;
@Override
public void onReceive(Context context, Intent intent) {
this.context = context;
showNotification();
}
public void showNotification() {
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
PendingIntent pendingIntent = PendingIntent
.getActivity(context, 0, new Intent(context, MainActivity.class),
PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setSmallIcon(android.R.drawable.ic_dialog_alert)
.setTicker("Ticket")
.setContentTitle("Title")
.setContentText("Context")
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentIntent(pendingIntent);
notificationManager.notify(1, builder.build());
}
}
這是我的MainActivity代碼:
public class MainActivity extends AppCompatActivity {
AlarmManager am ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
am = (AlarmManager) getSystemService(ALARM_SERVICE);
AlarmHATT alarmHATT = new AlarmHATT(getApplicationContext());
alarmHATT.Alarm();
}
public class AlarmHATT {
private Context context;
public AlarmHATT(Context context) {
this.context = context;
}
public void Alarm() {
Intent intent = new Intent(context.getApplicationContext(), BroadcastD.class);
PendingIntent sender = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DATE), 21, 21, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000, sender);
}
}
如果您設置了過去的時間,那麼alarmManager會啓動這種正常行爲。只有通過設置正確的時間,你才能避免。 – Opiatefuchs
我能夠避免報警的另一種方式是什麼?如果你知道,請教我。謝謝。 –
只是不要設置過去的時間。問題是,你爲什麼要設定過去的時間?這是沒有意義的,沒有人需要通知已經過去的事件..... – Opiatefuchs