android - 如何在 android 应用程序之外时提醒警报消息?

标签 android notifications alarmmanager android-notifications android-alarms

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

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

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

最佳答案

您可能需要一个 BroadcastReceiver .

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

你必须像这样构建 Intent :

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

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

关于android - 如何在 android 应用程序之外时提醒警报消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10702140/

相关文章:

android - 我如何以 5 秒的间隔在 android 中执行后台任务?目前我正在使用警报管理器(setInexactRepeating)但没有成功

android - ListView 捕捉到项目

java - 死代码警告?

javascript - webkitNotifications 在 chromium 44 中未定义

Swift 组推送通知

ios - Firebase FCM主题-可以是已订阅用户的用户ID吗?

android - 如何防止警报在启动时运行耗时

ios - android_alarm_manager 在 IOS 上工作还是只支持 android?

java - 基于对象属性对 ArrayList 进行排序

Android Facebook SDK3.0, session 状态OPENING