Ich habe ein Benachrichtigungsfeld erstellen, aber es gibt ein Problem. Ich habe einen Dienst dafür erstellt, aber die Benachrichtigung wird nicht wiederholt. Ich verstehe nicht, was für ein Problem. Hier ist mein Code:Wie wiederhole ich die Benachrichtigung zu bestimmten Zeiten in Android durch den Dienst
MainActivity.java
public class MainActivity extends Activity {
Button b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(MainActivity.this , Notification.class);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getService(MainActivity.this, 0, myIntent, 0);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 00);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 20*1000 , pendingIntent);
}
});
}
}
Notification.java
public class Notification extends Service{
@Override
public void onCreate() {
Toast.makeText(this, "Notification", Toast.LENGTH_LONG).show();
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
@SuppressWarnings("deprecation")
android.app.Notification notification = new android.app.Notification(R.drawable.ic_launcher,"New Message", System.currentTimeMillis());
Intent notificationIntent = new Intent(this,NotificationView.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,notificationIntent, 0);
notification.setLatestEventInfo(this, "hahaha","U have recived new message", pendingIntent);
notificationManager.notify(9999, notification);
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
in AndroidManifest.xml
erklärte ich die Erlaubnis für Alarm und declered Service.
Es gibt ein Problem, wenn ich auf die Schaltfläche klicken, dann starten Sie eine Benachrichtigung show.but Benachrichtigung wird nicht wiederholt.
Die 'AlarmManager # setRepeating()' Methode ist seit KitKat nicht korrekt. Außerdem stellen Sie den Alarm so ein, dass er alle 20 Sekunden wiederholt wird, was in aktuellen Android-Versionen wahrscheinlich auf mindestens eine Minute erhöht wird. Wenn Sie ein so kurzes Intervall benötigen, wird die Verwendung von 'AlarmManager' nicht empfohlen. –