【发布时间】:2016-07-23 13:20:38
【问题描述】:
我想在特定时刻执行数据库操作,并结合广播接收器使用警报管理器和未决意图。
这可行,但是当同一个广播接收器必须在短时间内(例如在一分钟内)接收多个意图时,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);
以及broadcastreceiver的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())
}
对我做错了什么有什么建议吗?
【问题讨论】:
标签: android broadcastreceiver alarmmanager android-pendingintent