Однако параметр «когда» в скрипте несколько сбивает с толку, потому что уведомление в строке состояния всегда вызывается при вызове.Уведомление уведомление = новое уведомление (значок, tickerText, когда);
Точно - уведомление вызывается при вызове.Если для переменной system.currentTimeMilis () задано значение, как в примере, это означает - показать уведомление сейчас.То, что вызывает ваши уведомления, решать вам.Деятельность не кажется хорошим выбором, но Служба делает.Инициализируйте свой сервис при запуске приложения (и не забудьте остановить его при выходе из приложения), и пусть он выполняет «прослушивание» и запуск уведомлений.Это может выглядеть так:
public class NotifyService extends Service {
private NotificationManager mNM;
@Override
public void onCreate() {
mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
//do some work, listen for change
if (triggerSatisfied) showNotification();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public void onDestroy() {
// Cancel the persistent notification.
mNM.cancelAll();
}
@Override
public IBinder onBind(Intent arg0) {
return mBinder;
}
private final IBinder mBinder = new LocalBinder();
private void showNotification() {
//code for notification goes here
}
public class LocalBinder extends Binder {
NotifyService getService() {
return NotifyService.this;
}
}