3

このコードを使ってアラームメッセージをポップアップしようとしています。アプリを起動または開いたときに機能しますが、アプリの外部ではポップアップメッセージは表示されません。私はとても混乱しています、私は私が間違っていることを知りません。

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

アラームとまったく同じように、アプリの外部にアラームメッセージをポップアップする必要があります。助けてくれてありがとう、

4

1 に答える 1

2

おそらく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");
      }
}

マニフェスト ファイルにブロードキャストを登録することを忘れないでください。

于 2012-05-22T12:40:42.170 に答える