package com.mfh.comna.bizz.init;
import android.content.Context;
import com.mfh.comn.config.UConfig;
import com.mfh.comn.upgrade.UpgradeConfigParseHelper;
import com.mfh.comna.comn.database.dao.BaseDbDao;
import com.mfh.comna.comn.logic.AsyncTaskCallBack;
import com.mfh.comna.comn.logic.BaseService;
import com.mfh.comna.comn.logic.DataSyncStrategy;
import com.mfh.comna.comn.logic.ServiceFactory;
import com.mfh.comna.network.NetFactory;
import com.mfh.comna.network.NetStateService;
import com.mfh.comna.comn.database.upgrade.SqlliteUpgradeSupport;
import net.tsz.afinal.http.AjaxParams;
/**
* 系统初始化服务,所有启动时需要的检测和初始化工作放在此处
*
* @author zhangyz created on 2013-5-9
* @since Framework 1.0
*/
public class InitService extends BaseService {
public static InitService getService(Context context) {
return ServiceFactory.getService(InitService.class, context);
}
@Override
protected Class getDaoClass() {
return null;
}
@Override
public DataSyncStrategy getDataSyncStrategy() {
return null;
}
/**
* 系统初始化过程
* @param context
* @author zhangyz created on 2013-5-9
*/
public void init (Context context) {
///data/data/<package name>/shares_prefs
/*SharedPreferences sp = context.getSharedPreferences("itm.cfg.xml", Context.MODE_APPEND);
System.out.println(sp.getString("itm.ip", "192.168.0.1"));
Editor editor = sp.edit();
editor.putString("itm.ip", "localhost");
editor.commit();*/
NetStateService.registerReceiver();
checkDb(context);
initOther();
}
/**
* 检测和初始化数据库
*
* @author zhangyz created on 2013-5-7
*/
protected void checkDb(Context context) {
//com.dinsc.comn.utils.SyncUtil.copyDatabase(context, com.dins.itm.comn.Constants.DBNAME);
String dbName = uconfig.getDomain(UConfig.CONFIG_COMMON).getString(UConfig.CONFIG_PARAM_DB_NAME, "mfh.db");
String dbPath = uconfig.getDomain(UConfig.CONFIG_COMMON).getString(UConfig.CONFIG_PARAM_DB_PATH);//"/storage/sdcard0/dinsItm"
UpgradeConfigParseHelper helper = new UpgradeConfigParseHelper();
UConfig uc = uconfig.getDomain(UConfig.CONFIG_DBUPGRADE);
SqlliteUpgradeSupport support = new SqlliteUpgradeSupport();
boolean bCreate = BaseDbDao.initDao(context, dbName, dbPath);
if (bCreate) {
helper.doDbUpdate(uc, support, bCreate);
}
else {
helper.doDbUpdate(uc, support);
}
}
/**
* getSync可以在后台线程中调用;
* 但get只需在UI主线程中调用,因为内部已经开启了其他子线程并采用了异步。
*
* @author zhangyz created on 2013-5-15
*/
protected void checkNetInBack() {
AjaxParams params = new AjaxParams();
params.put("loginName", "sys");
params.put("pwd", "123456");
params.put("needXml", "true");
String ret = (String)NetFactory.getHttp().getSync("http://192.168.1.200:8080/glp/priv/queryUser.action",params);
System.out.println(ret);
}
/**
* 检查网络
* @param context
*/
public void checkNet(Context context) {
AjaxParams params = new AjaxParams();
params.put("loginName", "sys");
params.put("pwd", "123456");
params.put("needXml", "true");
NetFactory.getHttp().get("http://192.168.1.200:8080/glp/priv/queryUser.action", params, new AsyncTaskCallBack<String>(context) {
@Override
protected void doSuccess(String rawValue) {
System.out.println(rawValue);
}
});
}
/**
* 其他必要的初始化工作
*
* @author zhangyz created on 2013-5-9
*/
protected void initOther() {
}
}