第一行代码android多线程编程
Posted iiiLISA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一行代码android多线程编程相关的知识,希望对你有一定的参考价值。
今天写代码的时候,发现书里的Handler构造函数已经过时了。
小白查资料
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private TextView mText;
public static final int UPDATE_TEXT=1;
//定义一个整型常量,用于表示Handler中某个动作
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mText = (TextView) findViewById(R.id.text);
Button changeText = (Button) findViewById(R.id.change_text);
changeText.setOnClickListener( this);
}
//Handler静态内部类
private static class MyHandler extends Handler {
//弱引用
WeakReference<MainActivity> weakReference;
public MyHandler(MainActivity activity) {
weakReference = new WeakReference<MainActivity>(activity);
}
@Override
public void handleMessage(Message msg) {
MainActivity activity = weakReference.get();
if (activity != null) {
activity.mText.setText("很高兴认识你");
}
}
}
private MyHandler handler = new MyHandler(this);
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.change_text:
//开启一个子线程更新UI
new Thread(new Runnable() {
@Override
public void run() {
Message message=new Message();
message.what=UPDATE_TEXT;
handler.sendMessage(message);
//将Message对象发出去
}
}).start();
break;
default:
break;
}
}
}
以上是关于第一行代码android多线程编程的主要内容,如果未能解决你的问题,请参考以下文章