Как предупредить о тревожном сообщении, когда оно находится вне приложения в Android?

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

String alarmtime = cur.getString(cur.getColumnIndex(DBDATA.LG_ALARMTIME));
//Reminder
String[] timesplit = alarmtime.split(":"); 
int hour = Integer.parseInt(timesplit[0]);
int minute = Integer.parseInt(timesplit[1]);
System.out.println(hour);
System.out.println(minute); 

AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, ShortTimeEntryReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); 

Calendar alarm = new GregorianCalendar();
alarm.setTimeInMillis(System.currentTimeMillis());
alarm.set(Calendar.HOUR_OF_DAY, hour);
alarm.set(Calendar.MINUTE, minute); 
alarm.set(Calendar.SECOND, 0);  
System.out.println(System.currentTimeMillis());
System.out.println(alarm.getTimeInMillis());
if (System.currentTimeMillis() > alarm.getTimeInMillis()){
    alarm.setTimeInMillis(alarm.getTimeInMillis()+ 24*60*60*1000);// Okay, then tomorrow ...
    alarmMgr.set(AlarmManager.RTC_WAKEUP, alarm.getTimeInMillis(),pendingIntent);
}
else
{
    alarmMgr.set(AlarmManager.RTC_WAKEUP, alarm.getTimeInMillis(),pendingIntent);                 
}

Мне нужно вывести сообщение о тревоге за пределами приложения (т.е.) точно так же, как это делает тревога. Спасибо за помощь ребята,


person vinothp    schedule 22.05.2012    source источник
comment
Думаю, вам понадобятся Услуги. developer.android.com/reference/android/app/Service.html   -  person MikkoP    schedule 22.05.2012


Ответы (1)


Возможно, вам понадобится BroadcastReceiver.

Как вы можете прочитать в этом вопросе: BroadcastReceiver не получает сигнал тревоги

Вы должны построить намерение следующим образом:

Intent alarmIntent = new Intent(this, AlarmReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this, "CHECK_ALARM_CODE", alarmIntent, 0);

И получите сигнал тревоги следующим образом:

    public class AlarmReceiver extends BroadcastReceiver{
      @Override
      public void onReceive(Context context, Intent intent) {
         Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show();
         Log.d("OK", "AlarmReceiver.onReceive");
      }
}

Не забудьте зарегистрировать трансляцию в файле манифеста.

person Timothée Jeannin    schedule 22.05.2012
comment
Спасибо за ваш комментарий.. На самом деле мой будильник работает, когда я нахожусь внутри приложения.. Но его нет, когда я нахожусь в другом приложении.. - person vinothp; 22.05.2012
comment
Я понимаю. Но вы хотите, чтобы ваш будильник срабатывал, когда ваше приложение закрывается, верно? Тогда у вас не будет ни активности, ни службы. Все, что вы можете сделать, это перехватить намерение тревоги с помощью широковещательного приемника, а затем сделать все, что вы хотите, от этого широковещательного приемника (например, начать другое действие...) - person Timothée Jeannin; 22.05.2012
comment
Вы решили свою проблему или вам нужно больше объяснений? - person Timothée Jeannin; 22.05.2012
comment
Спасибо за ваше объяснение... Я уже делаю свою работу с вещательным приемником.. Я не знаю, вдруг он перестанет работать, а теперь начнет работать.... Но ваше объяснение правильное.. я просто отмечаю как ответ .. спасибо - person vinothp; 22.05.2012
comment
Спасибо. :) Не стесняйтесь спрашивать, нужны ли вам дополнительные объяснения. - person Timothée Jeannin; 22.05.2012
comment
@Timothee.. У меня была одна проблема.. В то время как диалоговое окно тревоги появляется, сзади я вижу последнее использовавшееся действие.. Как это удалить.. Я много пробовал, но не смог найти решение.. - person vinothp; 29.05.2012