package net.dev123.yibo.service.task; import net.dev123.yibo.HomePageActivity; import net.dev123.yibo.R; import net.dev123.yibo.YiBoApplication; import net.dev123.yibo.common.Constants; import net.dev123.yibo.common.GlobalVars; import net.dev123.yibo.common.NetUtil; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.ActivityInfo; import android.os.AsyncTask; import android.util.Log; import android.view.WindowManager; import com.mobclick.android.MobclickAgent; public class InitAppTask extends AsyncTask<Void, Void, Void> { private static final String TAG = InitAppTask.class.getSimpleName(); private HomePageActivity context; private YiBoApplication yibo; public InitAppTask(HomePageActivity context) { this.context = context; this.yibo = (YiBoApplication)context.getApplication(); } @Override protected void onPreExecute() { super.onPreExecute(); context.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); context.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); context.setContentView(R.layout.splash); } @Override protected Void doInBackground(Void... params) { if (Constants.DEBUG) { Log.v(TAG, "InitAppTask ... , Intent : " + context.getIntent()); } //初始化 context.initComponents(); return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); context.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); if (yibo.isAutoScreenOrientation()) { context.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER); } else { context.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } context.updateContentView(null); if (!NetUtil.isConnect(context)) { showNetSettingsDialog(); } if (GlobalVars.IS_MOBILE_NET_UPDATE_VERSION) { MobclickAgent.setUpdateOnlyWifi(false); } if (yibo.isCheckNewVersionOnStartup()) { //检查更新 MobclickAgent.update(context); } //清除缓存 StatusesCleanTask statusCleanTask = new StatusesCleanTask(context); statusCleanTask.execute(); ImageCacheQuickCleanTask imageCacheTask = new ImageCacheQuickCleanTask(context); imageCacheTask.execute(); } private void showNetSettingsDialog() { new AlertDialog.Builder(context) .setTitle(context.getString(R.string.title_dialog_net_setting)) .setMessage(context.getString(R.string.msg_net_setting)) .setPositiveButton(context.getString(R.string.btn_net_setting), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { context.startActivityForResult( new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS), Constants.REQUEST_CODE_NET_SETTINGS ); } }) .setNegativeButton(context.getString(R.string.btn_net_cancel), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .show(); } }