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卡顿的情况。希望你能够灵活运用这种方法,提升你的开发技能。祝你编程愉快!