1
私は毎朝これを朝に走ろうとしています。どのように私はそれが私のためにそれは1日に1回作ることができます。以下は私のコードですが、動作しません。毎日アンドロイドスタジオを実行します
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