私はアンドロイドとJavaプログラミングには新しく、複数のアラームを発生させて毎日繰り返すアプリケーションがあります。それは正常に動作しているが、私の問題は、私は翌日発射を続けるアラームを削除するときです。彼らは、メソッドをキャンセル使用するように私に言った、私はこの機能を作成し、次のようにアラームをキャンセルする
public void deleteReminder(Long reminderId){
Intent d = new Intent(mContext, Daily_OnAlarmReceiver.class);
d.putExtra(RemindersDbAdapter.KEY_ROWID_DAILY, (long)reminderId);
int Daily_requestCode = reminderId.intValue();
PendingIntent pid = PendingIntent.getBroadcast(mContext, Daily_requestCode, d, PendingIntent.FLAG_CANCEL_CURRENT);
mAlarmManager.cancel(pid);
}
私のセットのリマインダー機能を:
public void setReminder(Long reminderId, Calendar when) {
Intent i = new Intent(mContext, Daily_OnAlarmReceiver.class);
i.putExtra(RemindersDbAdapter.KEY_ROWID_DAILY, (long)reminderId);
int Daily_requestCode = reminderId.intValue();
PendingIntent pi = PendingIntent.getBroadcast(mContext, Daily_requestCode, i, PendingIntent.FLAG_CANCEL_CURRENT);
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
}
を、それらの両方がAlarmManager.javaファイルに配置されています。
次のコードは、リストからアラームを削除し、別のjavaファイルであるが、それは、アラームを発射からシステムを防ぐdoesntの:
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_delete:
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
mDbHelper.deleteDailyReminder(info.id);
fillData();
return true;
}
return super.onContextItemSelected(item);
}
私の質問は、前のコードでこのnew Daily_ReminderManager(this).deleteReminder(mRowId);
を呼び出す方法ですリマインダーはリストからもアラームマネージャーからも削除されます。
と私の最初のコードはfilterEquals(..)
で定義されているようIntents
が一致しなければならない警報を解除するために
私の場合、filterEqualsの使い方は? – zoza
あなたはしません。これは、インテントをキャンセルするためにインテントを比較するときに、AlarmManagerが使用するものです。 –
リストから削除されたアラームをサービスからキャンセルするには、自分のコードで何をすべきですか? – zoza