ein Ich füge einen Wert in meine Datenbank um Mitternacht einmal am Tag. Wenn ich meine App neu starte, wird jedoch ein weiterer Eintrag eingefügt. Ich kann nicht meinen Fehler finden:Android: Neustart meiner App fügt einen Datenbankeintrag
Dies ist der Teil des OnReceive Verfahrens ist, das die Methode aufruft, die den Eintrag macht:
if (mTaskList != null && mTaskList.size() > 0) {
DatabaseHelper mDbHelper = new DatabaseHelper(context);
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, -1);
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
String date = df.format(c.getTime());
String millisIdentifier;
int doneState;
for (int i = 0; i < mTaskList.size(); i++) {
millisIdentifier = mTaskList.get(i).getMilliIdentifier();
doneState = mTaskList.get(i).getDoneTodayValue();
mDbHelper.addDayCheck(millisIdentifier, date, doneState);
mTaskList.get(i).shiftDayChecks();
mTaskList.get(i).resetTimeLeft();
}
}
Dies ist die Methode, die tatsächlich den Eintrag macht:
public void addDayCheck(String millisIdentifier, String date, int doneState){
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_DATE, date);
values.put(COLUMN_DONE_STATE, doneState);
db.insert(millisIdentifier, null, values);
}
Die onReceive-Methode wird zur richtigen Zeit aufgerufen, da bin ich mir sicher. Also ich verstehe nicht, warum es diesen Eintrag am Anfang der App macht.
Die Methode addDayCheck wird immer in der onReceive-Methode aufgerufen, die einen neuen Eintrag impliziert. –
Richtig, aber die onReceive-Methode als Ganzes wird nur einmal pro Tag aufgerufen. –
Können Sie den Code einfügen, der die Übertragung auslöst? – iTurki