Ich möchte eine Datenbankoperation zu bestimmten Zeitpunkten durchführen und einen Alarm-Manager und eine ausstehende Absicht in Verbindung mit einem Broadcast-Empfänger verwenden.Mehrere Absichten aber Broadcast-Empfänger nur einmal angerufen
Dies funktioniert, aber wenn es mehrere Absichten gibt, die derselbe Rundfunkempfänger innerhalb eines kurzen Zeitrahmens empfangen muss (zum Beispiel innerhalb einer Minute), wird onreceive() nur einmal aufgerufen.
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);
und die OnReceive Methode des broadcastreceiver:
@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())
}
Irgendwelche Vorschläge auf, was ich falsch mache?
Spot on, Genau das war das Problem. Vielen Dank! – user5102612
Mein Vergnügen! :3 –