Android执行子线程再执行主线程
状态图
stateDiagram
state 开始
state 创建子线程
state 子线程执行
state 主线程执行
开始 --> 创建子线程: 点击开始按钮
创建子线程 --> 子线程执行: 启动子线程
子线程执行 --> 主线程执行: 切换到主线程
主线程执行 --> 开始: 完成任务
旅行图
journey
title 实现Android执行子线程再执行主线程
section 初始化
开始 --> 创建子线程: 点击开始按钮
section 执行子线程
创建子线程 --> 子线程执行: 启动子线程
section 执行主线程
子线程执行 --> 主线程执行: 切换到主线程
section 完成任务
主线程执行 --> 开始: 完成任务
步骤
步骤 | 描述 |
---|---|
1 | 点击开始按钮 |
2 | 创建子线程 |
3 | 子线程执行并处理耗时任务 |
4 | 切换到主线程执行UI操作 |
5 | 完成任务 |
具体实现
步骤1:点击开始按钮
在Activity或Fragment中的某个按钮的点击事件中添加以下代码:
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 创建子线程
new Thread(new Runnable() {
@Override
public void run() {
// 子线程执行
// 处理耗时任务
// 将结果传递给主线程
runOnUiThread(new Runnable() {
@Override
public void run() {
// 主线程执行
// 更新UI操作
}
});
}
}).start();
}
});
代码注释说明:
new Thread(new Runnable() {
:使用匿名内部类创建一个新的线程runOnUiThread(new Runnable() {
:使用该方法切换到主线程执行UI操作
结束语
通过以上步骤,你已经学会了在Android中实现子线程执行后再执行主线程的操作。这种方法可以很好地避免在主线程中执行耗时任务导致UI卡顿的情况。希望你能够灵活运用这种方法,提升你的开发技能。祝你编程愉快!