Android 在其他线程中更新UI线程的解决方法
更新时间:2013年05月22日 16:27:44 作者:
本篇文章是对Android中在其他线程中更新UI线程的方法进行了详细的分析介绍,需要的朋友参考下
方法一:Activity.runOnUiThread(Runnable )
(经验之道: 这个最好用, 凡是要刷新页面的地方,
Activity.runOnUiThread( new Runnable()
{ public void run(){更新UI}}
);
方法二:子线程调用Handler的sendMessage(message)发送事件。
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
//操作界面
myText.setText( 来自网络的信息);
super.handleMessage(msg);
}
};
public class MyThread extends Thread {
public void run() {
// 耗时操作
loadNetWork();
Message msg = new Message();
mHandler.sendMessage(msg);//向Handler发送消息,
}
}
方法三:View.post(Runnable )
public void onClick( View v ) {
new Thread( new Runnable() {
public void run() {
// 耗时操作
loadNetWork();
myText.( new Runnable() {
myText.setText( 来自网络的信息);
});
}
}).start();
}
方法四:AsyncTask
//UI线程中执行
new DownloadImageTask().execute( "www.91dota.com" );
private class DownloadImageTask extends AsyncTask {
protected String doInBackground( String... url ) {
return loadDataFormNetwork( url[0] );//后台耗时操作
}
protected void onPostExecute( String result ) {
myText.setText( result ); //得到来自网络的信息刷新页面
}
}
(经验之道: 这个最好用, 凡是要刷新页面的地方,
Activity.runOnUiThread( new Runnable()
{ public void run(){更新UI}}
);
方法二:子线程调用Handler的sendMessage(message)发送事件。
复制代码 代码如下:
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
//操作界面
myText.setText( 来自网络的信息);
super.handleMessage(msg);
}
};
public class MyThread extends Thread {
public void run() {
// 耗时操作
loadNetWork();
Message msg = new Message();
mHandler.sendMessage(msg);//向Handler发送消息,
}
}
方法三:View.post(Runnable )
复制代码 代码如下:
public void onClick( View v ) {
new Thread( new Runnable() {
public void run() {
// 耗时操作
loadNetWork();
myText.( new Runnable() {
myText.setText( 来自网络的信息);
});
}
}).start();
}
方法四:AsyncTask
复制代码 代码如下:
//UI线程中执行
new DownloadImageTask().execute( "www.91dota.com" );
private class DownloadImageTask extends AsyncTask {
protected String doInBackground( String... url ) {
return loadDataFormNetwork( url[0] );//后台耗时操作
}
protected void onPostExecute( String result ) {
myText.setText( result ); //得到来自网络的信息刷新页面
}
}
您可能感兴趣的文章:
相关文章
TextView显示文本控件两种方法 TextView显示link的方法
这篇文章主要为大家详细介绍了TextView显示文本控件两种方法,TextView显示link的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-08-08Android开发教程之ContentProvider数据存储
这篇文章主要介绍了Android开发教程之ContentProvider数据存储的相关资料,需要的朋友可以参考下2016-12-12Android Webview的postUrl与loadUrl加载页面实例
这篇文章主要介绍了Android Webview的postUrl与loadUrl加载页面实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-03-03
最新评论