Уведомление Android в AlarmReceiver - PullRequest
0 голосов
/ 18 февраля 2012

Я хочу иметь возможность создавать сигнал тревоги, чтобы звонить пользователю уведомления о запуске приложения каждые 2 минуты.Все работает нормально, но уведомление появляется, когда я запускаю приложение вручную.Вот мой код:

Получатель:

public void onReceive(Context context, Intent intent) {
    nm = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    CharSequence from = "myactivity";
    CharSequence message = "click to start activity";


    Intent scheduledIntent = new Intent(context, AmslerTestActivity.class);


    PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
            scheduledIntent, 0);
    Notification notif = new Notification(R.drawable.icon,
            message, System.currentTimeMillis());
    notif.setLatestEventInfo(context, from, message, contentIntent);
    notif.flags = Notification.FLAG_AUTO_CANCEL;
    notif.defaults |= Notification.DEFAULT_SOUND;
    nm.notify(1, notif);
    scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(scheduledIntent);

}

Планировщик:

cal.set(Calendar.HOUR_OF_DAY, 12);
    cal.set(Calendar.MINUTE, 01);
    cal.set(Calendar.SECOND, 0);

    Intent intent = new Intent(myactivity.this, AlarmReceiver.class);

    PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent,
            PendingIntent.FLAG_CANCEL_CURRENT);

    // Get the AlarmManager service
    am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 2 * 60 * 1000, sender);

Я хочу, чтобы уведомлениеЗвонит только когда код не работает.

1 Ответ

0 голосов
/ 18 февраля 2012

Поместите часть «планировщика» своего кода в onPause, onStop или onDestroy, чтобы установить будильник только после остановки Activity.Прочитайте здесь , чтобы решить, что лучше для ваших целей.Затем, при выполнении am.setRepeating, используйте System.currentTimeMillis() + 2 * 60 * 1000 для triggerAtTime, чтобы сработал будильник через 2 минуты с момента остановки Activity.Затем он будет повторяться каждые 2 минуты на основе 3-го параметра, interval, который вы в настоящее время правильно установили на 2 минуты.

...