Android 更新UI的方法汇总
程序员文章站
2024-03-31 17:14:46
1、activity的 runonuithread
textview = (textview) findviewbyid( r.id.tv );
new th...
1、activity的 runonuithread
textview = (textview) findviewbyid( r.id.tv ); new thread(new runnable() { @override public void run() { runonuithread(new runnable() { @override public void run() { textview.settext( "更新ui了"); } }); } }).start();
android activity runonuithread() 方法使用
2、handler sendemptymessage()
package lib.com.myapplication; import android.os.handler; import android.os.message; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.widget.textview; public class mainactivity extends appcompatactivity { private textview textview ; handler handler = new handler( ) { @override public void handlemessage(message msg) { super.handlemessage(msg); textview.settext( "ui更新了"); } }; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); textview = (textview) findviewbyid( r.id.tv ); new thread(new runnable() { @override public void run() { try { thread.sleep( 2000 ); } catch (interruptedexception e) { e.printstacktrace(); } handler.sendemptymessage( 2 ) ; } }).start(); } }
3、handler post()
package lib.com.myapplication; import android.os.bundle; import android.os.handler; import android.support.v7.app.appcompatactivity; import android.widget.textview; public class mainactivity extends appcompatactivity { private textview textview ; handler handler = new handler(); @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); textview = (textview) findviewbyid( r.id.tv ); new thread(new runnable() { @override public void run() { try { thread.sleep( 2000 ); } catch (interruptedexception e) { e.printstacktrace(); } handler.post(new runnable() { @override public void run() { textview.settext( "ui更新了"); } }) ; } }).start(); } }
4、view post()
textview = (textview) findviewbyid( r.id.tv ); new thread(new runnable() { @override public void run() { try { thread.sleep( 2000 ); } catch (interruptedexception e) { e.printstacktrace(); } textview.post(new runnable() { @override public void run() { textview.settext( "ui更新了"); } }) ; } }).start();
总结:
1、其实上面的四种方式都可归结于一种方式:handler 用于android线程之间的通信。
2、为什么android要求只能在ui线程进行ui操作? 主要还是为了避免多线程造成的并发的问题。在单线程操作ui是安全的。
以上所述是 给大家介绍的android 更新ui的方法汇总的相关知识,希望对大家有所帮助,如果大家有疑问欢迎给我留言,小编会及时回复大家的!
上一篇: Android中关于JSON相关应用分析
下一篇: Android实现动态圆环的图片头像控件
推荐阅读
-
Java中实现获取路径的方法汇总
-
Android 更新UI的方法汇总
-
Android Service中使用Toast无法正常显示问题的解决方法
-
Android自定义ViewGroup的实现方法
-
Android UI设计系列之自定义EditText实现带清除功能的输入框(3)
-
Android中Fragmen首选项使用自定义的ListPreference的方法
-
Android中使用socket通信实现消息推送的方法详解
-
读写Android中assets目录下的文件的方法详解
-
详解Android中Service服务的基础知识及编写方法
-
Android中使用Matrix控制图形变换和制作倒影效果的方法