1

私は基本的にAndroidアプリケーション内の別のアプリケーションへのインタフェースを提供しています。クライアントは、特定の時刻に表示される新しいローカル通知をスケジューリングすることも、すべてのローカルスケジュール通知をキャンセルすることもできるシステムを要求しました。 AlarmManagerを使ってPendingIntentオブジェクトに(実際には無制限の)requestCodes(/ ids)を自動的に割り当てる方法はありますか?自動的にrequestCodesをPendingIntent.getBroadcastに割り当てます(AlarmManagerを使用)

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, requestCode, someNotificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
... 
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, futureTimeInMillis, pendingIntent); 
私もrequestCodesを追跡することなく、これらすべての保留中のインテントを取り消すことができるようにしたい

for(int requestCode : somehowGetAllUsedRequestCodes){ 
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, requestCode, someNotificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
    pendingIntent.cancel(); 
    alarmManager.cancel(pendingIntent); 
} 

が手動でリクエストコードを追跡することなく、そのことさえ可能ですか?

答えて

0

データベース内のリクエストコードを追跡したり、後で取り消すことができるようにする必要があります。データベースに値を格納する場合は、IDが一意であることを確認することもできます。

+0

十分に良いです。内部の追跡があるかどうか疑問に思っていました。ありがとう! –

+0

私はSharedPreferencesを使用して終了しました –

関連する問題