【问题标题】:How to alert alarm message when outside of the app in android?如何在android中的应用程序之外发出警报消息?
【发布时间】:2014-04-09 04:37:29
【问题描述】:

我正在尝试使用此代码来弹出警报消息。它在启动或打开应用程序时工作,但在应用程序之外没有任何弹出消息。 我很困惑,我不知道我做错了什么。

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);                 
}

我需要在应用程序之外弹出警报消息(即),就像警报一样。 谢谢你们的帮助,

【问题讨论】:

标签: android notifications alarmmanager android-notifications android-alarms


【解决方案1】:

您可能需要BroadcastReceiver

正如您在这个问题中看到的那样:BroadcastReceiver not receiving an alarm's broadcast

你必须像这样构建意图:

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");
      }
}

不要忘记在清单文件中注册您的广播。

【讨论】:

  • 感谢您的评论。实际上,当我在应用程序内时,我的警报正在工作。但当我在其他应用程序中时,它就不行了。。
  • 我明白了。但是您希望在您的应用程序关闭时触发警报,对吗?然后你没有活动运行,没有服务运行。你所能做的就是用广播接收器“拦截”警报意图,然后从广播接收器做任何你想做的事情(例如开始另一个活动......)
  • 您的问题解决了吗,还是需要更多解释?
  • 感谢您的解释...我已经在使用广播接收器完成我的工作..我不知道它突然停止工作,现在开始工作....但是您的解释是的..我只是标记为答案..谢谢
  • 谢谢。 :) 如果您需要更多解释,请随时询问。
猜你喜欢
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-08
  • 2014-05-27
相关资源
最近更新 更多