package com.yizhao.activity; import java.util.Map; import com.yizhao.action.AppStartAction; import com.yizhao.core.ATManager; import com.yizhao.core.AsyncWorkHandler; import com.yizhao.core.Const; import com.yizhao.core.DBHelper; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.os.Message; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ProgressBar; import android.widget.TextView; import com.yizhao.util.NetUtil; public class AppStartActivity extends Activity{ private Context _context; private AppStartAction asi; private TextView appstart_text; private ProgressBar progressBar = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.welcome); ATManager.addActivity(this); _context = this; appstart_text = (TextView)findViewById(R.id.appstart_text); progressBar = (ProgressBar)findViewById(R.id.downloadBar); appstart_text.setText(R.string.appstart_initing); new DBHelper(this).close(); asi = new AppStartAction(this,appstart_text,progressBar); asi.initLocalIR(); appstart_text.setText(R.string.reading_update); //初始化-入口 AsyncWorkHandler handler_init = new AsyncWorkHandler(){ @Override public Object excute(Map<String,String> map) { boolean isConnection = NetUtil.isNetworkAvailable(_context); Integer hasNewVersion = 0; if(isConnection){ hasNewVersion = asi.checkVersion(); } return hasNewVersion; }; @Override public void handleMessage(Message msg){ Integer result = (Integer)msg.obj; switch(result){ case 1://APK有更新 showDialog(Const.DIALOG_APK_UPDATE); break; default: int res = asi.checkIR(); if(res==1){ showDialog(Const.DIALOG_IR_UPDATE); }else{ asi.getHandler_initData().doWork(null); } break; } } }; handler_init.doWork(null); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case Const.DIALOG_YES_NO_MESSAGE: return new AlertDialog.Builder(_context) .setTitle("确定退出程序?")//设置对话框的标题 .setPositiveButton("确定", new DialogInterface.OnClickListener() {//设置按下表示确定按钮时按钮的text,和按钮的事件监听器 @Override public void onClick(DialogInterface dialog, int whichButton) { removeDialog(Const.DIALOG_YES_NO_MESSAGE); ATManager.exitClient(_context); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() {//设置取消按钮的text 和监听器 @Override public void onClick(DialogInterface dialog, int whichButton) { dialog.dismiss(); } }) .create(); case Const.DIALOG_APK_UPDATE: return new AlertDialog.Builder(_context) .setTitle(R.string.checked_newapk) .setIcon(R.drawable.icon) .setMessage(R.string.upload_ask) .setPositiveButton("更新", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog,int which) { dialog.dismiss(); Intent intent = new Intent(_context, DownloadActivity.class); intent.putExtra("apk_name", asi.apk_name);//只有检测到版本才会提示DIALOG,所以这里肯定有值 intent.putExtra("apk_url", asi.apk_url);//只有检测到版本才会提示DIALOG,所以这里肯定有值 appstart_text.setText(""); startActivityForResult(intent,0); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog,int which) { dialog.cancel(); appstart_text.setText(R.string.reading_update); int result = asi.checkIR(); if(result==1){ showDialog(Const.DIALOG_IR_UPDATE); }else{ appstart_text.setText(R.string.appstart_initing); asi.getHandler_initData().doWork(null); } } }).create(); case Const.DIALOG_IR_UPDATE: return new AlertDialog.Builder(_context) .setTitle(R.string.checked_newir) .setIcon(R.drawable.icon) .setMessage(R.string.upload_ask) .setPositiveButton("更新", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); progressBar.setVisibility(View.VISIBLE); appstart_text.setText(R.string.reading_update); asi.getHandler_ir().doWork(null); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); appstart_text.setText(R.string.appstart_initing); asi.getHandler_initData().doWork(null); } }).create(); } return null; } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(Const.TAG, "AppStartActivity.onActivityResult...resultCode="+resultCode); switch (resultCode) { case RESULT_FIRST_USER: int result = asi.checkIR(); if(result==1){ showDialog(Const.DIALOG_IR_UPDATE); }else{ appstart_text.setText(R.string.appstart_initing); asi.getHandler_initData().doWork(null); } break; default: break; } } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0,1,1,"返回"); menu.add(0,2,2,"退出"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId()==2){ showDialog(Const.DIALOG_YES_NO_MESSAGE); } return super.onOptionsItemSelected(item); } /** * 监听返回键事件 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event){ if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){ asi.flagA = false; asi.flagC = false; asi.flagD = false; finish(); } return super.onKeyDown(keyCode, event); } }