2012-03-30 10 views
1

this私が直面していた問題については、私の問題に答えた人が示唆したように+私の追加の調査が示したように、私はAlarmManagerを使用して解決する必要がある私の睡眠& TimerTaskを問題...私はAlarmManagerとともにPendingIntentを利用する既存のコード変更開始している、以降:サービスでThread thr = new Thread(null, mTask, "ServiceName");を...Android Dev:AlarmManager再スケジュールとサービス

AlarmManagerのマニュアルを読んだ後、私はいけない、いくつかの回は、スケジュールを変更する方法を知っていますAlarmManager ...イムプロフィールスイッチャーアプリケーション、意志の様々な実行間隔(私は私の問題のスレッドで説明したような)に取り組んで...

誰にも提案はありますか?

+0

現在この作品は、すべての時間 –

答えて

4

私は既存のアラームを削除し、アラームをスケジュールするset()または他のset...()のいずれかの方法を使用する場合に使用cancel() AlarmManager

のスケジュールを変更する方法を知りません。アラームを再スケジュールするには、古いアラームをキャンセルして新しいアラームを作成します。

+0

...ん、イムは、ワンショットアラームを作成するに探して、その後、そのワンショットが期限切れになると、新しい更新間隔で新しいものを作成しますか?時々私はキャンセルを使用して、私のpendingIntentの新しい時間を設定する...それは動作しませんまたはアラームが10分後にトリガーされます – yeahman

0

あなたが同じintentStringと同じ要求コードを使用している場合は、あなたの警報が上書きされます。

あなたの意図では、次のフラグを使用することができます:あなたがメソッドを使用することができ、アラーム自体に関連

PendingIntent.FLAG_UPDATE_CURRENT 
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, notification.getId(), new Intent(intentString), PendingIntent.FLAG_UPDATE_CURRENT); 

long startDateTimeMillis = notification.getDateTime().toDateTime().getMillis(); 

MyApplication.alarmManager().setExact(AlarmManager.RTC_WAKEUP, 
        startDateTimeMillis, 
        pendingIntent); 

をsetExact()または設定()、あなたはにそれらについて検索することができますどちらがあなたに合っているかを確認してください。

関連する問題