import com.evernote.client.oauth.android.EvernoteSession;
import com.yuji.ef.Initialize;
import com.yuji.ef.R;
+import com.yuji.ef.SettingActivity;
import com.yuji.ef.common.Constant;
import com.yuji.ef.dao.LockDao;
import com.yuji.ef.exception.EfException;
private Runnable task = new Runnable() {
public void run() {
try {
+ //cancelAlermTime(NoteUpdatorService.this);
+
if (action.equals(ACTION_START)) {
// 初期起動
} else {
}
private void execute() throws EfException {
- Initialize.initialize(NoteUpdatorService.this, null);
-
pref.put(Constant.PREF_UPDATE_DATA, Constant.ON);
pref.update();
+ Initialize.initialize(NoteUpdatorService.this, null);
+
NoteUpdateTask task = new NoteUpdateTask(null, true, true, true);
task.doExecute();
AlarmManager am = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC, t, alarmSender);
+
+ pref.put(Constant.PREF_NEXT_TIME, t);
+ pref.update();
}
+ private static void cancelAlermTime(Context context){
+ Calendar cal = Calendar.getInstance();
+
+ long t = cal.getTimeInMillis();
+ PendingIntent alarmSender = PendingIntent.getService(context, 0,
+ new Intent(context, NoteUpdatorService.class), 0);
+ AlarmManager am = (AlarmManager) context
+ .getSystemService(Context.ALARM_SERVICE);
+ am.cancel(alarmSender);
+ }
+
public static void stopService(Context context) {
PendingIntent alarmSender = PendingIntent.getService(context, 0,
new Intent(context, NoteUpdatorService.class),
boolean isSet = NoteUpdatorService.isSetAlarmSender(context);
int updateTime = pref.getInt(Constant.PREF_UPDATE_TIME);
+ // TODO
+ // サービス起動中でなく、ロックが残っている場合、削除(DB排他で、ロックされないこと)
+ // サービスのロック削除
+ long t = pref.getLong(Constant.PREF_NEXT_TIME);
+ Calendar cal = Calendar.getInstance();
+ long now = cal.getTimeInMillis();
+ if (t < now){
+ isSet = false;
+
+ // サービス起動中の場合は、DBロックがかかり
+ // 更新後まで、ロックは解除されない。
+ LockDao lockDao = (LockDao) LockDao.getInstance();
+ lockDao.unlock(NoteUpdatorService.class,
+ Constant.LOCK_UPDATE_NOTE);
+ lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE);
+ lockDao = null;
+ }
+
if (updateTime > 0) {
if (!isSet) {
// 再起動時