目录
1.Thread
Android中有三种开启Thread的方式
1.继承Thread
class MyTherad extends Thread{
@Override
public void run() {
super.run();
//耗时操作
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//子线程内一旦有耗时操作就,就不能在子线程内进行UI修改
String a="123";
Log.i("接收到的值",a);
}
}
//开启线程
MyTherad myTherad=new MyTherad();
myTherad.start();
2.实现Runnable接口
class MyRunnable implements Runnable{
@Override
public void run() {
try {
Thread.sleep(3000);
Log.i("实现接口创建子线程","123");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
MyRunnable myRunnable=new MyRunnable();
Thread thread=new Thread(myRunnable);
thread.start();
3.Thread和Runnable综合使用(最常见的)
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000);
Log.i("匿名","333");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
2.Handler
1.特点
从服务器接收到用户的昵称,并将昵称设置在textview对应的text属性上
连接服务器的功能,是属于耗时任务,所以必须放在子线程
子线程中是没有办法修改页面,借助Handler给主线程传递消息
主线程接收到消息后,开始执行修改UI
2.代码实现
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
tv_age = findViewById(R.id.tv_age);