Я сделал это таким образом, и он отлично работает для меня.
Создать класс и называем это что-то вроде ScheduledService простирается IntentService, в этом классе вы будете делать то, что вы хотите делать, когда тревога уходит.
public class ScheduledService extends IntentService {
public ScheduledService() {
super("My service");
}
@Override
protected void onHandleIntent(Intent intent) {
//Do something, fire a notification or whatever you want to do here
Log.d("debug", "Ring Rind !");
}
}
тогда в вас активности, чтобы начать сигнализации используйте следующее:
AlarmManager mgr = (AlarmManager) YourActivity.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(YourActivity, ScheduledService.class);
PendingIntent pi = PendingIntent.getService(YourActivity, 0, i, 0);
mgr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + PERIOD, pi);
Какой ПЕРИОДА после сколько миллисекунд вы хотите, чтобы сигнал тревоги погаснет.
Для отмены остановки таймера и отменить использование будильника:
if (mgr != null)
mgr.cancel(pi);
Наконец, чтобы все это работает, вам нужно зарегистрировать ScheduledService класса в качестве службы. В вашем манифесте добавить это Tou приложения:
<application
... />
...
<service android:name=".ScheduledService" >
</service>
</application>
Таким образом, ОС Android будет заботиться о стрельбе тревоги, когда пришло время. даже если другое приложение запущено или даже если ваш процесс приложения завершен.
Надеюсь, что эта помощь. С уважением.
Просто сумасшедшая идея: Создайте активность и установить его тема будет весь экран, без заголовка и кнопки, чтобы остановить сигнал тревоги, может быть, вместо того, чтобы делать уведомление просто сделать намерение, которое начинается, что деятельность " возможно, вам понадобится «This», чтобы работать, даже когда телефон заблокирован и воспроизводит некоторые раздражающие звуки, «This» может помочь, когда начнется действие. вы также можете переопределить onBackPressed(), чтобы ничего не делать.
Это приложение тревоги, хотя; Я вроде ХОЧУ это быть раздражающим. Я хотел бы что-то похожее на то, что делает приложение для будильника: всплывающее диалоговое окно, которое заставляет пользователя действовать, а если отловлено - или что-то подобное - THEN задает уведомление, которое может быть принято позже. Что показывает приложение по умолчанию, когда будильник сначала отключается (меню с отсрочкой/увольнением) НЕ диалог? – UnsettlingTrend