当前位置:首页 > splash
package com.dgc.mymobliesafe.activity;
import java.io.File;
import java.io.IOException; import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException; import java.net.URL;
import java.net.URLConnection;
import org.json.JSONException; import org.json.JSONObject;
import com.dgc.mymobliesafe.R;
import com.dgc.mymobliesafe.R.layout; import com.dgc.mymobliesafe.R.menu;
import com.dgc.mymobliesafe.utils.AppInfoUtils; import com.dgc.mymobliesafe.utils.IntentUtils; import com.dgc.mymobliesafe.utils.StreamUtils; import com.dgc.mymobliesafe.utils.ToastUtils; import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException; import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import android.net.Uri; import android.os.Bundle;
import android.os.Environment; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.app.AlertDialog;
import android.app.AlertDialog.Builder; import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener; import android.content.Intent;
import android.content.SharedPreferences; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException; import android.view.Menu;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation; import android.widget.RelativeLayout; import android.widget.TextView;
public class SplashActivity extends Activity { protected static final int NEED_UPDATE = 1; private TextView tv_splash_version; private TextView tv_splash_download;
// 消息处理机制
private Handler handler = new Handler() { @Override
public void handleMessage(android.os.Message msg) { super.handleMessage(msg); // 判断消息的类型 switch (msg.what) {
// 程序需要更新
case NEED_UPDATE: showUpdateDownload(msg); break; } } }; private RelativeLayout tv_splash_root; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); tv_splash_version = (TextView) findViewById(R.id.tv_splash_version); tv_splash_download = (TextView) findViewById(R.id.tv_splash_download); tv_splash_root = (RelativeLayout) findViewById(R.id.tv_splash_root); //透明度的动画 AlphaAnimation aa = new AlphaAnimation(0.2f,1.0f) ; aa.setDuration(2000); tv_splash_root.startAnimation(aa);
MODE_PRIVATE);
HomeActivity.class, 2000);
tv_splash_version.setText(AppInfoUtils.getVersionName(this));
//读取配置文件
SharedPreferences sp = getSharedPreferences(\
boolean update = sp.getBoolean(\ if (update) { checkVersion(); } else {
IntentUtils.startActivityForDelayAndFinished(SplashActivity.this, } } /**
* 检查更新版本号 */ private void checkVersion() { new Thread() { @Override public void run() { super.run(); try { // 获取连接对象 URL url = URL(getString(R.string.serverUrl)); // 获取与服务器连接对象 HttpURLConnection conn (HttpURLConnection) url .openConnection(); // 设置请求方法 conn.setRequestMethod(\
为字符串格式,JSONObject
new
=
// 设置连接超时
conn.setConnectTimeout(3000);
// 如果响应状态码为200,则表示请求成功 if (conn.getResponseCode() == 200) { // 服务器配置的json文件对应的输入流 InputStream is = conn.getInputStream(); // StreamUtils把流里的数据读取并转化
jsonobj.getString(\
的传递
JSONObject jsonobj = new JSONObject( StreamUtils.readStream(is)); int version = jsonobj.getInt(\String downloadurl = String desc = jsonobj.getString(\// 创建一个内部类更新信息对象 UpdateInfo info = new UpdateInfo(); // 给这个对象的各个属性赋值,便于消息info.serverVersion = version; info.downloadUrl = downloadurl; info.desc = desc;
// 如果服务器的应用版本号比当前应用版本号大,则说明有新版本,如果小于或等于,则没有新版本 if (version > AppInfoUtils .getVersionCode(getApplicationContext())) { System.out.println(\有新版本更新了,是否下载更新?\
// 弹出升级对话框 Message msg = Message.obtain(); msg.obj = info; msg.what = NEED_UPDATE; handler.sendMessageDelayed(msg, 2000); } else { // 没有新版本,则2秒后直接开启主界面HomeActivity,并且关闭当前的界面 System.out.println(\当前版本已经是最新版本\ IntentUtils.startActivityForDelayAndFinished( SplashActivity.this, HomeActivity.class, 2000); } System.out.println(version + downloadurl + desc);
共分享92篇相关文档