网络请求获取新版本信息并显示dialog
来源:互联网 发布:2016网络歌曲打包下载 编辑:程序博客网 时间:2024/06/16 10:00
本人第一次写博客,可能有很多纰漏,大家指教……(本人接触安卓不久,希望大家多多指教)
public class SplashActivity extends Activity {private static final int WHAT_SHOW_UDPATE = 0;private String mNetVersionDesc;private Handler mHandler=new Handler(){public void handleMessage(android.os.Message msg) {//主线程中执行switch (msg.what) {case WHAT_SHOW_UDPATE://显示更新的dialogshowUpdateDialog();break;default:break;}}};private void showUpdateDialog() {AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("版本更新提醒");builder.setMessage(mNetVersionDesc);builder.setPositiveButton("更新", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});builder.setNegativeButton("稍后再说", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});builder.show();};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//去服务器检测版本(网络请求,需要在子线程中执行)new Thread(new CheckVersionTask()).start();}private class CheckVersionTask implements Runnable{private String mUrl;private Message mObtainMessage;@Overridepublic void run() {// 去服务器获得最新的版本号// 服务器:提供最新的版本信息AndroidHttpClient client = AndroidHttpClient.newInstance("jiong");// 设置超时时间HttpConnectionParams.setConnectionTimeout(client.getParams(),5 * 1000);// 设置请求超时的时长HttpConnectionParams.setSoTimeout(client.getParams(), 5 * 1000);// 设置响应的超时时长//新版本信息String url ="http://localhost:8080/update.json";//get请求HttpGet get=new HttpGet(url);try {//执行请求HttpResponse response = client.execute(get);StatusLine line = response.getStatusLine();//获得返回的结果码int statusCode = line.getStatusCode();if(statusCode==200){//获取成功 HttpEntity entity = response.getEntity(); String string = EntityUtils.toString(entity,"utf-8"); JSONObject jsonObject = new JSONObject(string); //从服务器获取版本号 int netVersionCode = jsonObject.getInt("versionCode"); //获取本地版本号 PackageManager packageManager = getPackageManager(); PackageInfo packageInfo=null; packageInfo = packageManager.getPackageInfo(getPackageName(), 0); int localVersionCode = packageInfo.versionCode; String versionName = packageInfo.versionName;//和本地的版本号进行比较 if(localVersionCode<netVersionCode){ //获取新版本的描述 mNetVersionDesc = jsonObject.getString("VersionDesc"); //更新(由于在子线程中,想更新UI,所以使用handler) mObtainMessage = mHandler.obtainMessage(); //显示更新的dialog mObtainMessage.what=WHAT_SHOW_UDPATE; mObtainMessage.sendToTarget(); }else{ //不需要更新,直接跳到主界面 load2main(); } }else{//获取失败,不需要更新}} catch (IOException e) {e.printStackTrace();} catch (JSONException e) {e.printStackTrace();} catch (NameNotFoundException e) {e.printStackTrace();}}private void load2main() {mHandler.postDelayed(new Runnable() {@Overridepublic void run() {Intent intent = new Intent();intent.setClass(SplashActivity.this, MainActivity.class);startActivity(intent);}}, 500);}}}
0 0
- 网络请求获取新版本信息并显示dialog
- 获取网络图片并显示
- 各种网络请求获取URL图片信息
- android 获取时钟信息并显示
- 安卓ListView获取信息并显示
- swing获取网络图片,并压缩显示
- android从网络获取图片并显示
- [Android] 获取网络图片并显示
- ReactNative从网络获取数据并显示
- java发送http请求并获取response信息
- 使用拦截器获取请求参数信息并写入日志
- 网络通信之网络图片获取 并显示屏幕上
- 高德完美获取地理位置信息并显示出来~~
- JSP使用EL获取并显示用户注册信息。
- 从网络获取时实天气信息并动态生成
- C#中PictureBox控件获取网络图片并显示出来
- android从网络获取图片并显示和保存
- PHP获取网络图片并显示到浏览器
- 千兆以太网 TCP, UDP协议, FPGA实现
- IOS之c语言笔记 day07
- HDOJ 5616 Jam's balance(母函数)
- Java中Socket通信的基本方法
- 打印月历题解
- 网络请求获取新版本信息并显示dialog
- 转载的一篇整型溢出的文章
- 集训队专题(2)1002 Tr A
- go 为方便单元测试的函数
- cocos2d-x-3.8.1 WP8 竖屏解决办法
- Gesture控制图片缩放&Canvas: trying to use a recycled bitmap android.graphics.Bitmap异常
- 内容提供器--学习笔记(1)
- JavaScript跨浏览器处理事件方法(封装成对象)
- BestCoder Round #70 Jam's store(网络流)