2 實(shí)現(xiàn)說明
實(shí)現(xiàn)流程
Step One 彈出進(jìn)度條對(duì)話框
Step Two 執(zhí)行線程,在線程中實(shí)現(xiàn)數(shù)據(jù)的異步加載
Step Three 在線程數(shù)據(jù)加載完成后,調(diào)用Handler并集合數(shù)據(jù),更新界面
//添加異步操作 m_Dialog=ProgressDialog.show(m_context, "請(qǐng)等待...", "正在下載安裝文件,請(qǐng)稍后...",true); //mRegsiterHandler.sleep(100); new Thread(new Runnable(){ @Override public void run() { //加載數(shù)據(jù) result=0; try{ //下載文件 String url="http://00.00.00.00:80/nationaltest.html"; HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(url); HttpResponse response; response = client.execute(get); HttpEntity entity = response.getEntity(); long length = entity.getContentLength(); InputStream is = entity.getContent(); FileOutputStream fileOutputStream = null; if (is != null) { File file = new File(Environment.getExternalStorageDirectory(), "nationaltest.apk"); fileOutputStream = new FileOutputStream(file); byte[] buf = new byte[1024]; int ch = -1; while ((ch = is.read(buf)) != -1) { fileOutputStream.write(buf, 0, ch); } } fileOutputStream.flush(); if (fileOutputStream != null) { fileOutputStream.close(); } result=2; } catch(Exception ex){ result=-1; } //更新界面 // Update the progress bar mHandler.post(new Runnable() { public void run() { if(result==2) install(); else Toast.makeText(m_context, "下載文件失敗,請(qǐng)檢查網(wǎng)絡(luò)連接", Toast.LENGTH_SHORT).show(); } }); m_Dialog.dismiss(); }}).start(); }
|
|