private LinkedList<Achievement> list;
private HttpPutAchievementTask httpTasks;
private Timer timer = null;
- private final static int periodTime = 1000;
+ private final static int periodTime = 0;
+ private final static int periodReconnectionTime = 5000;
+ private boolean reconnectionMode = false;
private Achievement nowAchievement;
public AchievementsSenderTask(Context context, LinkedList<Achievement> list) {
@Override
public void postExecute(String result) {
- if (result != null) {
+ boolean sucessful = (result != null);
+ if (sucessful) {
// データベース読み取りor作成
SQLiteOpenHelper h = new SQLHelper(context);
final SQLiteDatabase db = h.getReadableDatabase();
nowAchievement.setSubmitted(true);
nowAchievement.merge(db);
db.close();
+ reconnectionMode = false;
+ } else {
+ reconnectionMode = true;
}
synchronized (list) {
list.remove(nowAchievement);
+ if (!sucessful) {
+ list.push(nowAchievement);
+ }
if (list.size() > 0) {
timer = new Timer(true);
+ int period;
+ if (!reconnectionMode) {
+ period = periodTime;
+ } else {
+ period = periodReconnectionTime;
+ }
timer.schedule(new AchievementsSenderTask(context, list),
- periodTime);
+ period);
}
}
}