文章目录
  1. 1. 简单介绍
  2. 2. 实例

简单介绍

在Anroid中通常需要处理一些比较耗时的操作通常需要用到多线程,而使用多线程一般简单的处理可以创建一个Thread线程通过Handler与主线程通信,也可以直接创建一个异步任务继承AsyncTask实现多线程,本篇介绍Android中Thread的使用。

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package com.carlos.thread;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;

public class MainActivity extends Activity {

private TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textView = (TextView) findViewById(R.id.textview);

// 方式一,Thread创建一个线程,Handler实现主线程和UI线程间的通信
thread.start();

// 方式二,直接创建一个UI线程
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText("新创建的UI线程");
Log.i("runOnUiThread", "新创建的UI线程");
}
});
}

Thread thread = new Thread() {
public void run() {
for (int i = 0; i < 3; i++) {
try {
sleep(1000);// 每隔一秒休眠一次
Log.i("thread", i + "");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
handler.sendEmptyMessage(1);
};
};

Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
Log.i("handler", "1");
break;
default:
break;
}
};
};
}

Logcat日志中打印出的结果

文章目录
  1. 1. 简单介绍
  2. 2. 实例