/**
* @description: 欢迎界面
* @author chenshiqiang E-mail:csqwyyx@163.com
* @date 2014年4月23日 下午9:37:05
* @version 1.0
*/
package com.csq.thesceneryalong.ui.activitys;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.Window;
import com.csq.thesceneryalong.io.db.DbManager;
import com.csq.thesceneryalong.io.db.TrackDb;
import com.csq.thesceneryalong.logic.manager.MyLocationManager;
import com.csq.thesceneryalong.logic.manager.TrackManager;
import com.csq.thesceneryalong.ui.activitys.base.TemplateActionBarActivity;
import com.csq.thesceneryalong.ui.fragments.WelcomeFragment;
import com.csq.thesceneryalong.utils.SdcardUtils;
import com.csq.thesceneryalong.utils.tasks.CsqBackgroundTask;
public class WelcomeActivity extends TemplateActionBarActivity {
// ------------------------ Constants ------------------------
// ------------------------- Fields --------------------------
private static volatile int onCreateTimes = 0;
private long onCreateTime = 0;
private WelcomeFragment welcomeFragment;
private Handler handler = new Handler(Looper.getMainLooper());
// ----------------------- Constructors ----------------------
// -------- Methods for/from SuperClass/Interfaces -----------
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
welcomeFragment = new WelcomeFragment();
setFragement(welcomeFragment);
//初始化数据库
try{
DbManager.getInstance().init();
}catch (Exception e){
Log.e("", e.toString());
}
viewInited();
onCreateTime = System.currentTimeMillis();
}
protected void viewInited(){
if(!SdcardUtils.isSdcardExist() || !DbManager.getInstance().dbInited){
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
finish();
}
}, 3000);
return;
}
if(onCreateTimes++ == 0){
//程序第一次运行,做程序启动的初始化操作
MyLocationManager.getInstance(); //MyLocationManager里面Handler handler = new Handler不能在BackgroundThread执行
initApp();
}else{
//程序后台运行恢复,仅显示1秒
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
startActivity(MainActivity.class, true);
}
}, 1000);
}
}
@Override
protected void releaseResources() {
// TODO Auto-generated method stub
}
// --------------------- Methods public ----------------------
// --------------------- Methods private ---------------------
void initApp(){
new CsqBackgroundTask<Void>() {
@Override
protected Void onRun() {
// TODO Auto-generated method stub
TrackDb.getInstance().loadAllTrackToMemory();
TrackManager.getInstance().resumeIfHaveRecordingTrack();
long excuteTime = System.currentTimeMillis() - onCreateTime;
if(excuteTime < 1500){
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
startActivity(MainActivity.class, true);
}
}, 1500 - excuteTime);
}else{
startActivity(MainActivity.class, true);
}
return null;
}
@Override
protected void onResult(Void result) {
// TODO Auto-generated method stub
}
}.start();
}
// --------------------- Getter & Setter ---------------------
// --------------- Inner and Anonymous Classes ---------------
}