package com.shejiaomao.weibo.service.task;
import java.util.Calendar;
import com.shejiaomao.maobo.R;
import android.content.Context;
import android.content.res.Resources;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import android.util.Log;
import com.cattong.commons.Logger;
import com.shejiaomao.weibo.SheJiaoMaoApplication;
import com.shejiaomao.weibo.common.StatusCatalog;
import com.shejiaomao.weibo.db.DBHelper;
public class StatusesCleanTask extends AsyncTask<Void, Void, Boolean> {
private static final String TAG = StatusesCleanTask.class.getSimpleName();
private Context context;
private SheJiaoMaoApplication sheJiaoMao;
public StatusesCleanTask(Context context){
this.context = context;
sheJiaoMao = (SheJiaoMaoApplication)context.getApplicationContext();
}
@Override
protected Boolean doInBackground(Void... arg0) {
int value = sheJiaoMao.getCacheStrategy();
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, - value + 1);
calendar.set(Calendar.HOUR, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
long time = calendar.getTimeInMillis();
Resources res = context.getResources();
String[] cleanSql = res.getStringArray(R.array.db_clean_status_sql);
String sql = String.format(cleanSql[0],
time, StatusCatalog.Home.getCatalogId(),
StatusCatalog.Others.getCatalogId(), time);
if (Logger.isDebug()) Log.d(TAG, sql);
SQLiteDatabase sqLiteDatabase = DBHelper.getInstance(context).getWritableDatabase();
boolean success = false;
try {
long startTime = System.currentTimeMillis();
sqLiteDatabase.execSQL(sql);
if (Logger.isDebug()) {
Log.v(TAG, "Statused Clean use time:" + (System.currentTimeMillis() - startTime));
}
success = true;
} catch (SQLException e) {
if (Logger.isDebug()) {
Log.d(TAG, e.getMessage(), e);
}
}
return success;
}
}