Я пытаюсь запустить это каждый день утром. Как я могу это сделать, что для меня он делает один раз в день. Ниже мой код, но он не работает.Выполняет ежедневную андроид-студию
public final class FetchMail extends TimerTask {
DatabaseHelper myDb;
SQLiteDatabase db = myDb.getReadableDatabase();
public static void main (String... arguments) {
TimerTask fetchMail = new FetchMail();
Timer timer = new Timer();
timer.scheduleAtFixedRate(fetchMail, getTomorrowMorning4am(), fONCE_PER_DAY);
}
@Override
public void run(){
Cursor t = db.rawQuery("SELECT ID_TARGET,TARGET,LEAD_TIME FROM TARGET_TABLE WHERE (LEAD_TIME < date('now')) AND AMOUNT > 0", null);
if (t != null) {
if (t.moveToFirst()) {
do {
String tmpName = t.getString(t.getColumnIndex("TARGET"));
String selectQuery = ("INSERT INTO GAMIFICATION(ID,HISTORY,STATE_POINTS) VALUES(NULL,'Points: " + tmpName + "',-1)");
db.execSQL(selectQuery);
}while (t.moveToNext());
}
}
}
private final static long fONCE_PER_DAY = 1000*60*60*24;
private final static int fONE_DAY = 1;
private final static int fFOUR_AM = 4;
private final static int fZERO_MINUTES = 0;
private static Date getTomorrowMorning4am(){
Calendar tomorrow = new GregorianCalendar();
tomorrow.add(Calendar.DATE, fONE_DAY);
Calendar result = new GregorianCalendar(
tomorrow.get(Calendar.YEAR),
tomorrow.get(Calendar.MONTH),
tomorrow.get(Calendar.DATE),
fFOUR_AM,
fZERO_MINUTES
);
return result.getTime();
}}
Должен ли я добавить что-то к MainActivity? Потому что MainActivity - первая страница.
Вместо этого используйте AlarmManager, в частности setRepeating ... – drulabs