子线程更新Ui两种方法
来源:互联网 发布:淘宝违禁品怎么防排查 编辑:程序博客网 时间:2024/06/05 02:38
原文http://blog.csdn.net/zoeice/article/details/8060151
Toast只能在主UI线程使用,使用下面的办法可以解决
第一种,使用Looper,不过这种办法会终止,子线程之后的代码,
[java] view plaincopy
Looper.prepare();
Toast.makeText(aActivity.this,"test",Toast.LENGTH_SHORT).show();
Looper.loop();
int k =0;//这句话不会被执行
第二种,就是用 Handler Message
[java] view plaincopy
private final Handler msgHandler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.arg1) {
case R.string.msg_not_network:
Toast.makeText(getApplicationContext(), getResources().getString(R.string.msg_not_network), Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
};
在子线程中使用
[java] view plaincopy
Message msg = msgHandler.obtainMessage();
msg.arg1 = R.string.msg_not_network;
msgHandler.sendMessage(msg);
第三种,就是post加入到主线程处理队列中,这种貌似还是通过Handle机制更新的Ui,我是这样理解的。(第三种方法不是转载的)
继承全局Application
public class MyApplication extends Application
private static Handler mainHandler;//全局的handler
public void onCreate() {
mainHandler = new Handler();
}
public static Handler getMainHandler(){
return mainHandler;
}
在其它Activity中的子线程需要包含更新Ui等操作时可以这样:(并不需要调用Thread类的start()方法哦)
MyApplication.getMainHandler().post(new Runnable() {
@Override
public void run() {
Toast.makeText(CircleActivity.this, "子线程弹框", Toast.LENGTH_SHORT).show();
}
});
0 0
- 子线程更新Ui两种方法
- Android子线程更新UI两种方法
- iOS子线程更新UI的两种方法
- Android子线程更新UI两种方法
- iOS子线程更新UI的两种方法
- iOS子线程更新UI的两种方法
- Android子线程更新UI的两种方法
- iOS开发-进阶:子线程更新UI的两种方法
- Android子线程中更新UI的三种方法和获取message的两种方法总结
- Android子线程中更新UI的三种方法和获取message的两种方法总结
- Android在子线程更新UI的4种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- 在子线程中,更新ui的几种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- java 报错 the type JOptionPane is not accessible due to restriction on required library ×
- 让LinearLayout实现水平滑动,左右滑动
- JSONObject简介
- 毕业生自传----入职深白天地(Gone)
- 屏幕大小调整palyer setting
- 子线程更新Ui两种方法
- 关于百度坐标转火星坐标的问题
- Messager 跨域解决方案
- Hibernate回调函数
- WPF禁用文本框的copy,paste,cut功能
- C#中String如何判断是否为空
- JAVA系列教程
- Unity3D-对象池GameObjectPool
- Win7 x64系统下PHP开发环境搭建(Apache2.4.18+PHP5.6.16+MySQL5.7.10+phpMyAdmin4.5.3.1)