Android MVP 切线程实现教程

流程图

flowchart TD
    A(开始)
    B[创建View接口]
    C[创建Presenter接口]
    D[创建Presenter实现类]
    E[创建Model接口]
    F[创建Model实现类]
    G[实现线程切换]
    H(结束)
    
    A --> B
    B --> C
    C --> D
    C --> E
    E --> F
    D --> G
    F --> G
    G --> H

整体流程

步骤 操作
1 创建View接口
2 创建Presenter接口
3 创建Presenter实现类
4 创建Model接口
5 创建Model实现类
6 实现线程切换

具体步骤及代码

1. 创建View接口

// View接口
public interface MainView {
    void showResult(String result);
}

2. 创建Presenter接口

// Presenter接口
public interface MainPresenter {
    void getResult();
}

3. 创建Presenter实现类

// Presenter实现类
public class MainPresenterImpl implements MainPresenter {
    private MainView mView;
    private Handler mHandler = new Handler(Looper.getMainLooper());

    public MainPresenterImpl(MainView view) {
        mView = view;
    }

    @Override
    public void getResult() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                // 模拟耗时操作
                String result = "Hello, MVP!";
                // 切到主线程更新UI
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        mView.showResult(result);
                    }
                });
            }
        }).start();
    }
}

4. 创建Model接口

// Model接口
public interface MainModel {
    String fetchData();
}

5. 创建Model实现类

// Model实现类
public class MainModelImpl implements MainModel {
    @Override
    public String fetchData() {
        // 模拟网络请求
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return "Data from Model";
    }
}

6. 实现线程切换

在Presenter实现类中使用Handler实现线程切换,在子线程中进行耗时操作,然后通过Handler切换到主线程更新UI。

// 切到主线程更新UI
mHandler.post(new Runnable() {
    @Override
    public void run() {
        mView.showResult(result);
    }
});

总结

通过以上步骤,我们成功实现了Android MVP架构下线程切换的操作。在Presenter中通过Handler来实现在子线程进行耗时操作,然后切换到主线程更新UI,保持界面流畅性。希望以上内容对你有所帮助,祝你学习顺利,加油!