Android利用Looper在子线程中改变UI
MainActivity如下:
package cn.testlooper;
import android.app.Activity;
import android.os.Bundle;
import android.os.Looper;
import android.widget.TextView;
import android.widget.Toast;
/*** Demo描述:* 在子线程中Looper的使用* * 测试结果:* 可在子线程中更改UI* * 原理备注:* 在View和Toast的源码中均含有一个Handle* 这样的话在子线程中:* Handle Message Looper MessageQueue这套机制 * 就齐备了.* 关于此原理有待于进一步研究* * 参考资料:* http://blog.csdn.net/xiaanming/article/details/9344703*/
public class MainActivity extends Activity {public TextView mTextView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);init();}private void init() {mTextView=(TextView) findViewById(R.id.textView);testLooper();}private void testLooper(){new Thread(new Runnable() {@Overridepublic void run() {Looper.prepare();mTextView.setText("9527");Toast.makeText(MainActivity.this, "hello", Toast.LENGTH_LONG).show();Looper.loop();}}).start();}}
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world"android:layout_centerInParent="true"android:textSize="25sp"/></RelativeLayout>
转载于:https://www.cnblogs.com/dyllove98/p/3233897.html
Android利用Looper在子线程中改变UI相关推荐
- android 不能在子线程中更新ui的讨论和分析
问题描述 做过android开发基本都遇见过 ViewRootImpl$CalledFromWrongThreadException,上网一查,得到结果基本都是只能在主线程中更改 ui,子线程要修改 ...
- 为什么不能在子线程中更新UI
首先声明一点:子线程里面是可以更新UI的--创建一个空白的Activity,在其xml文件中放一个空白TextView,Java代码如下: @Override protected void onCre ...
- C#子线程中更新ui
本文实例总结了C#子线程更新UI控件的方法,对于桌面应用程序设计的UI界面控制来说非常有实用价值.分享给大家供大家参考之用.具体分析如下: 一般在winform C/S程序中经常会在子线程中更新控件的 ...
- Android子线程中更新UI的4种方法
方法一:用Handler 1.主线程中定义Handler: Handler mHandler = new Handler() { @Override public void handleMessage ...
- android 线程 界面,android开发教程之子线程中更新界面
每个Handler对象与创建它的线程相关联,并且每个Handler对象只能与一个线程相关联. Handler一般有两种用途:1)执行计划任务,你可以再预定的实现执行某些任务,可以模拟定时器.2)线程间 ...
- Android 为什么不能在子线程中直接更新UI
1.现象 在子线程中直接更新UI就会crash,报错如下: android.view.ViewRootImpl$CalledFromWrongThreadException:Only the orig ...
- 子线程中更新UI线程的三个方法
1.通过handler方式,sendmessage. 多个类间传递比较麻烦,也懒的写... 2.线程中通过runOnUiThread() new Thread() { public void run( ...
- android-如何在子线程中更新ui
参考:https://blog.csdn.net/u013356254/article/details/52287794 实现基本跟链接相同,不同只出在于WindowManager.LayoutPar ...
- android电脑文件列表不刷新,Android 利用RecyclerView.Adapter刷新列表中的单个view问题...
首先使用RecyclerView的adapter继承:RecyclerView.Adapter public class OrderListAdapter extends RecyclerView.A ...
最新文章
- 关于Remote Desktop Users组
- 珍惜机会,去爱你身边的人!生命的箴言
- c#在WinForm中重写ProgressBar控件(带%的显示)
- 结构体怎么赋值_c语言学习之基础知识点介绍:结构体的介绍
- 如果能够让出资人了解更多的c++项目进程
- 【AD】如何将喜欢的图案导出成为丝印层和PCB形状
- java c 性能分析工具_Jprofiler使用介绍--java性能分析工具中文帮助
- EGE示例程序——2048
- 计算机专业专科毕业设计题目,专科生计算机专业论文题目大全 专科生计算机专业论文题目哪个好...
- Windows性能监控工具Perfmon使用指南
- 让技术Leader疯狂点赞的Linux速成手册,到底有多强悍?
- Zotero-word中引用跳转到参考文献/建立超链接-引用格式(Xie et al 2021, Achanta et al 2012)
- 颜色类中英文词汇大全(4)
- PilotEdit(文本编辑器软件)官方中文版V14.5.0 | pilotedit是什么软件
- 树莓派配置无线连接与无线AP热点
- c语言写骷髅病毒源码,骷髅病毒分析报告
- 直播课12-25 三个例子
- 宝塔连接服务器失败问题
- Java ArrayList indexOf() 方法 和 String indexOf() 方法区别
- 记录一次阿里云ECS服务器系统盘扩容