Androidスレッドの正しい使用方法

Android では時間のかかるタスクを別スレッドで実行してメインスレッドのブロックを避けることができます。以下に、Android スレッドを使用するための一般的な手順を示します。

  1. スレッドクラスを継承したカスタムスレッドクラスを作成するか、Runnableインターフェイスを使用してスレッドを作成します。
public class MyThread extends Thread {
@Override
public void run() {
// 在这里执行耗时的任务
}
}

あるいは、

public class MyRunnable implements Runnable {
@Override
public void run() {
// 在这里执行耗时的任务
}
}
  1. 時間のかかるタスクを実行する必要がある場所では、スレッドのインスタンスを作成し、スレッドを開始します。
Thread myThread = new MyThread();
myThread.start();

もしくは、

Runnable myRunnable = new MyRunnable();
Thread myThread = new Thread(myRunnable);
myThread.start();
  1. スレッドのrun()メソッド内で、時間のかかる作業を実行する。Handlerを使って、MainThreadとサブスレッド間の通信を行うことができる。
public class MyThread extends Thread {
private Handler mHandler;
public MyThread(Handler handler) {
mHandler = handler;
}
@Override
public void run() {
// 在这里执行耗时的任务
// 发送消息到主线程
Message message = mHandler.obtainMessage();
Bundle bundle = new Bundle();
bundle.putString("result", result);
message.setData(bundle);
mHandler.sendMessage(message);
}
}
  1. 子スレッドから送信されたメッセージを受け取るHandlerはメインスレッド内で作成できます。
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
String result = bundle.getString("result");
// 在这里处理子线程发送的消息
}
};

そうすることで、AndroidのThreadを使用して、時間がかかる処理をバックグラウンドで実行し、結果をメインスレッドで処理することができます。

bannerAds