您可以使用HandlerThread类来实现自定义的工作线程。HandlerThread继承自Thread类,并且已经封装了LooperHandler,可以轻松地实现消息处理和任务分发。

以下是一个示例代码:

public class CustomThread extends HandlerThread {
    private Handler mHandler;

    public CustomThread() {
        super("CustomThread");
    }

    @Override
    protected void onLooperPrepared() {
        super.onLooperPrepared();
        mHandler = new Handler(getLooper());
    }

    public synchronized void postTask(Runnable task) {
        if (mHandler != null) {
            mHandler.post(task);
        }
    }

    public synchronized void quit() {
        if (mHandler != null) {
            mHandler.getLooper().quit();
            mHandler = null;
        }
    }
}

在上面的代码中,CustomThread类继承了HandlerThread,并创建了一个Handler对象。在onLooperPrepared()方法中初始化了Handler对象。然后,通过postTask()方法将任务投递到工作线程,通过quit()方法退出线程。

您可以在CustomThread类中添加自己的逻辑,例如在while循环中等待任务的到来,并执行相应的操作。在需要执行任务时,只需调用postTask()方法即可。

以下是一个示例代码:

public class MainActivity extends AppCompatActivity {
    private CustomThread mCustomThread;

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

        mCustomThread = new CustomThread();
        mCustomThread.start();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mCustomThread.quit();
    }

    private void addTaskToThread() {
        mCustomThread.postTask(new Runnable() {
            @Override
            public void run() {
                // 在这里执行任务
            }
        });
    }
}

在上面的示例中,创建了一个CustomThread实例,并在onCreate()方法中启动线程。在addTaskToThread()方法中,将任务投递到工作线程中执行。在onDestroy()方法中,调用quit()方法退出线程。

您可以根据自己的需求修改CustomThread类和addTaskToThread()方法中的逻辑。

Android 自定义工作线程:使用 HandlerThread 实现高效任务处理

原文地址: https://www.cveoy.top/t/topic/X5E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录