Android 自定义工作线程:使用 HandlerThread 实现高效任务处理
您可以使用HandlerThread类来实现自定义的工作线程。HandlerThread继承自Thread类,并且已经封装了Looper和Handler,可以轻松地实现消息处理和任务分发。
以下是一个示例代码:
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()方法中的逻辑。
原文地址: https://www.cveoy.top/t/topic/X5E 著作权归作者所有。请勿转载和采集!