最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
android更新ui,Android更新UI

Android更新UI界面的幾種方法的使用

1. 利用Android Handler機制和message消息傳遞

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、茄子河網(wǎng)站維護(hù)、網(wǎng)站推廣。

我們知道 , Android Handler機制主要用作線程之間的通信,為了易于理解,我們暫不考慮每個線程的Looper問題。UI更新一般是在主線程中完成的,而Handler就是定義在主線程中,然后通過在Handler構(gòu)造方法中重寫HandlerMessage()方法,來處理有其他線程(子線程)傳遞過來的消息,從而達(dá)到更新UI的目的。相應(yīng)的,在其他線程(子線程)中,我們通過SendMessage(message)方法來傳遞消息。

2.利用Android Handler機制和post

這個比較容易理解,也是UI更新常用的方法。 在一個新建的線程中進(jìn)行更新界面的操作,然后在主線程中利用mHandler.post(Runnable runnable)來達(dá)到更新界面的目的,其中mHandler是在主線程中定義的。

3、通過runOnUiThread()方法來實現(xiàn)

class?MyThread?extends?Thread{

@Override

public?void?run()?{

//?TODO?Auto-generated?method?stub

super.run();

//數(shù)據(jù)處理

//...

runOnUiThread(new?new?Runnable()?{

public?void?run()?{

//刷新界面

list.add(dog);

adapter.notifyDataSetChanged();

}

}

})

}

Android更新Ui的幾種方法和見解

利用Looper更新UI界面

2.AsyncTask利用線程任務(wù)異步更新UI界面

3.利用Runnable更新UI界面

android中如何實現(xiàn)UI的實時更新

1、在主線程中啟動一個子線程

首先,我們需要在主線程中啟動一個子線程,這個比較簡單,直接在MainActivity的onCreate()方法中調(diào)用如下方法即可:

new?Thread(mRunnable).start();

2、在子線程中發(fā)送Message給Handler

在創(chuàng)建子線程時,我們使用了Runnable接口對象mRunnable。這里,只需要實現(xiàn)Runnable接口,并重寫該接口的run()方法,在run()方法中實現(xiàn)每1秒發(fā)送一條Message給Handler即可。具體實現(xiàn)方法如下:

/*

*?Function???:???實現(xiàn)run()方法,每1秒發(fā)送一條Message給Handler

*/

private?Runnable?mRunnable?=?new?Runnable()?{

public?void?run()?{

while(true)?{

try?{

Thread.sleep(1000);

mHandler.sendMessage(mHandler.obtainMessage());

}?catch?(InterruptedException?e)?{

e.printStackTrace();

}

}

}

};

3、Handler接收Message通知

最后,我們創(chuàng)建一個Handler對象,用來接收Message通知。在收到Message通知后,完成刷新UI的操作即可。具體實現(xiàn)方法如下:

/*

*?Function???:???實現(xiàn)handleMessage()方法,用于接收Message,刷新UI

*/

private?Handler?mHandler?=?new?Handler()?{

public?void?handleMessage(Message?msg)?{

super.handleMessage(msg);

refreshUI();

}

};

4、刷新UI

由以上的代碼可以看出,刷新UI的操作,我們是放在refreshUI()方法中來完成的。refreshUI()方法的實現(xiàn)也很簡單,調(diào)用HttpUtils工具類中的getInputStream()方法,獲得圖1所示W(wǎng)eb工程的頁面內(nèi)容輸入流,再將該輸入流轉(zhuǎn)化為字符串,放入TextView控件中進(jìn)行顯示即可。具體實現(xiàn)方法如下:

/*

*?Function???:???刷新UI

*/

private?void?refreshUI()?{

try?{

InputStream?inputStream?=?HttpUtils.getInputStream();

String?resultData?=?HttpUtils.getResultData(inputStream);

mTextView.setText(resultData);

}?catch?(IOException?e)?{

e.printStackTrace();

}

}

android怎么更新UI

首先,android的UI刷新是在主線程(UI線程)中完成的。四大組件中,activity和service運行在主線程中。現(xiàn)在總結(jié)自己在項目中常用到的UI刷新方式。

第一,利用子線程發(fā)消息刷新UI。

子線程負(fù)責(zé)處理UI需要的數(shù)據(jù),然后發(fā)消息到主線程來刷新UI。代碼結(jié)構(gòu)如下:

new Thread(new Runnable() {

@Override

public void run() {

Person person=new Person();

person.setName(mName.getText().toString().trim());

person.setPhone(mPhone.getText().toString().trim());

Log.i("person",person.toString());

DatabaseInfoFactory.getPersonDao(mContext).addPerson(person);

Looper.prepare();

Message msg=Message.obtain();

msg.what=0x123456;

handler.sendMessage(msg);

Looper.loop();

}

}).start();

主線程中:

private Handler mHandler=new Handler(){

@Override

public void handleMessage(Message msg) {

// TODO Auto-generated method stub

super.handleMessage(msg);

if(msg.what==0x123456||msg.what==0x123){

fillData();

setListener();

}

}

};

第二,利用異步任務(wù)更新UI。代碼結(jié)構(gòu)如下:

new AsyncTaskvoid,void,void() {

@Override

protected void onPostExecute(Void result) {

if(mAdapter==null){

mAdapter=new LeaveInfoAdapter();

//設(shè)置數(shù)據(jù)適配器

mLVleaveInfos.setAdapter(mAdapter);

Log.i("測試", "異步任務(wù)顯示后臺獲得數(shù)據(jù)庫數(shù)據(jù)");

}

else {

mAdapter.notifyDataSetChanged();

}

super.onPostExecute(result);

}

@Override

protected Void doInBackground(Void... params) {

//獲得要顯示的數(shù)據(jù)

mleaveInfos=mLeaveInfosDao.findAll();

if (mleaveInfos==null) {

Toast.makeText(HomeActivity.this,"請假數(shù)據(jù)不存在或是已經(jīng)清除!", 500).show();

}

Log.i("測試", "異步任務(wù)后臺獲得數(shù)據(jù)庫數(shù)據(jù)"+mleaveInfos.size());

return null;

}

}.execute();/void,void,void

第三,利用配置文件+activity的生命周期方法刷新UI。


分享題目:android更新ui,Android更新UI
URL分享:http://fisionsoft.com.cn/article/dsdjpoo.html