2
특정 순간에 데이터베이스 작업을 수행하고 브로드 캐스트 수신기와 함께 경보 관리자와 보류중인 의도를 사용하려고합니다.여러 개의 의도가 있지만 브로드 캐스트 수신기는 한 번만 호출됩니다.
동일한 브로드 캐스트 리시버가 짧은 시간 내에 수신해야하는 인 텐트가 여러 개있는 경우 (예 : 1 분 이내에) 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())
}
어떤 제안? 일명 (
이if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
alarmManager.setExact(AlarmManager.RTC, cal.getTimeInMillis(), pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC, cal.getTimeInMillis(), pendingIntent);
}
getBroadcast()
의 두 번째 매개 변수는, 그것이 ID 인 것처럼 작동하는 requestCode가, 그래서 각 PendingIntent는 고유 requestCode가 있어야한다 :
스팟 : 모든
pendingIntent1
's은 (는) 그 문제의 원인이지만,이 같은 각 pendingIntent에 대한 diffrent requestCode가 설정할 수 있습니다 될 수있는 거라면 (0), 잘 모르겠어요 같은 requestCode가있다 이것이 바로 문제였습니다. 고마워요! – user5102612내 기쁨! :삼 –