2
我想在特定时刻执行数据库操作,并使用警报管理器和未决意图与广播接收器结合使用。多个意图,但广播接收器只调用一次
这是有效的,但是当同一个广播接收机需要在短时间内接收到多个意图时(一分钟内f.ex.),onreceive()只会被调用一次。
Intent intent2 = new Intent(this, CustomBroadcastReceiver.class);
intent2.putExtra("taskId", currentTask.getTaskId());
PendingIntent pendingIntent1 = PendingIntent.getBroadcast(this, 0, intent2, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() +
((long) dataSource.fetchTask(task.getTaskId()).getTaskTime() * 60 * 1000), pendingIntent1);
和广播接收器的方法的onReceive:
@Override
public void onReceive(Context context, Intent intent) {
dataSource = new DataSourceClass(context);
dataSource.open();
int taskId = intent.getIntExtra("taskId", 0);
dataSource.setTaskStatus(3, taskId);
dataSource.setCatInActive(dataSource.fetchTask(taskId).getTaskCategory())
}
在我做错了什么建议?
现货,这正是问题所在。非常感谢你! – user5102612
我的荣幸! :3 –