【发布时间】:2017-06-15 12:37:58
【问题描述】:
我正在开发一个提醒应用程序,我在其中存储所有提醒 使用sqlite在数据库中的相关数据,一切正常。
问题:
当我从数据库中删除行时,我也在尝试将 警报关闭,但它不起作用,我正在使用 recyclerview。
请帮我找出我的代码有什么问题。
这是我的代码:
DataAdapter.java
dataAdapterViewHolder.deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int deleteRowId = context.getContentResolver().delete(RoutineContract.RoutinesEntry.CONTENT_URI,
rowSelection, rowSelectionArgs);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
PendingIntent alertIntent = PendingIntent.getBroadcast(context, rowId, intent, PendingIntent.FLAG_NO_CREATE);
if(alertIntent != null) {
alarmManager.cancel(alertIntent);
alertIntent.cancel();
Log.e("row id", ""+rowId);
}
}
});
AddReminderActivity.java
Uri insertUri = getContentResolver().insert(RoutineContract.RoutinesEntry.CONTENT_URI, contentValues);
int rowId = Integer.parseInt(insertUri.getLastPathSegment());
Intent intent = new Intent(this, AlarmReceiver.class);
intent.setData(insertUri);
intent.putExtra("name", name);
intent.putExtra("repeatType", repeatType);
PendingIntent alertIntent = PendingIntent.getBroadcast(this, rowId, intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, dateTime.getTimeInMillis(),
pendingIntent);
P.S.:我已经在 stackoverflow 上搜索并找到了问题的解决方案,但现在没有一个对我有用。
【问题讨论】:
标签: android alarmmanager android-notifications android-alarms