毎日午後7時に着信音を再生しようとしていますが、保留中の意図がブロードキャストを登録した直後に着信音を再生しています。
ボタンをクリックしてフォアグラウンドでサービスを呼び出し、onStartCommandで保留中のインテントを作成しました。
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
startForeground(FOREGROUND_ID,
buildForegroundNotification("DummyApp"));
c = Calendar.getInstance();
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
int interval = 1000 * 60 * 60*24;
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR, 19);
c.set(Calendar.MINUTE,00);
manager.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(),
interval, pendingIntent);
Intent alarmIntent = new Intent(AlarmService.this, DataProcessor.class);
pendingIntent = PendingIntent.getBroadcast(AlarmService.this, 0,
alarmIntent, 0);
return START_STICKY;
}
現在、DataProcessorクラスでこのブロードキャストを受信すると着信音を再生しています。DataProcessorクラスのonReceiveメソッドは次のとおりです。
@Override
public void onReceive(Context ctx,Intent intent) {
playRIng(ctx);
}
しかし、このコードを実行すると、ボタンをクリックすると、サービスが作成されますが、AlarmServiceが呼び出された直後にアラームが発生し、着信音も再生されます。ブロードキャストの登録時に正確な7時の時刻を指定しているので、どうすればよいですか。グーグルでたくさん検索しましたが、同じコードしか見つかりませんでした。すべてのコードは時間どおりに着信音を再生できますが、ブロードキャストが登録された直後にも着信音を再生します。
そこにあるサンプルコードを理解している開発者のWebサイトで例を試すことができます。コードにプログラミングの誤りがあるかもしれませんが、そこで利用できるサンプルコードは正確に機能しています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加