Android 线程thread的两种实现方法(必看)
这篇文章中有三点需要提前说明一下,
一:在android中有两种实现线程thread的方法:
一种是,扩展java.lang.Thread类
另一种是,实现Runnable接口
二:Thread类代表线程类,它的两个最主要的方法是:
run()——包含线程运行时所执行的代码
Start()——用于启动线程
三: Handler 机制,它是Runnable和Activity交互的桥梁,在run方法中发送Message,在Handler里,通过不同的Message执行不同的任务。
下面分别给出两种线程的实现方法,其一,扩展java.lang.Thread类,也就是把run()方法写到线程里面:
package com.my; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class Demo_For_Copy extends Activity { public Button button; public Handler mHandler=new Handler() { public void handleMessage(Message msg) { switch(msg.what) { case 1: button.setText(R.string.text2); break; default: break; } super.handleMessage(msg); } }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button=(Button)findViewById(R.id.button); Thread thread=new Thread(new Runnable() { @Override public void run() { Log.e("1111", "111111111"); // TODO Auto-generated method stub Message message=new Message(); message.what=1; mHandler.sendMessage(message); } }); thread.start(); } }
其二,实现Runnable接口,让类实现Runnable接口,然后把run方法单独提出来:
package com.my; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; public class Title_Change_Demo extends Activity implements Runnable { public Button button; public LinearLayout my_layout; public Handler mHandler=new Handler() { public void handleMessage(Message msg) { switch(msg.what) { case 1: button.setText(R.string.text2); break; default: break; } my_layout.invalidate(); super.handleMessage(msg); } }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button=(Button)findViewById(R.id.button); my_layout=(LinearLayout)findViewById(R.id.my_layout); Thread thread=new Thread(this); thread.start(); } @Override public void run() { Log.e("ok", "111111111"); // TODO Auto-generated method stub Message message=new Message(); message.what=1; mHandler.sendMessage(message); } }
以上这篇Android 线程thread的两种实现方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
android使用ExpandableListView控件实现小说目录效果的例子
这篇文章主要介绍了android使用ExpandableListView控件实现小说目录效果的例子,还可以实现二级列表展示效果,需要的朋友可以参考下2014-07-07Android简单实现动态权限获取相机权限及存储空间等多权限
这篇文章主要介绍了Android简单实现动态权限获取相机权限及存储空间等多权限,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下2022-07-07Kotlin StateFlow单数据更新热流设计与使用介绍
StateFlow当值发生变化,就会将值发送出去,下流就可以接收到新值。在某些场景下,StateFlow比LiveData更适用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧2022-09-09Android直播软件搭建之实现背景颜色滑动渐变效果的详细代码
这篇文章主要介绍了Android直播软件搭建之实现背景颜色滑动渐变效果的详细代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-09-09
最新评论