なぜ別のスレッドを作成する必要があるのか混乱します。
doinBackground(プロセス)は、postExecuteスレッド(UI)とは別のスレッドです。したがって、ステップ1を実行すると、自動的にステップ2の別のスレッドになります。
これが役立ちます。コメントだけで2つのスレッドを実行する方法を知りたければ、それを説明することができます。
しかし、あなたの場合のために、asynctaskは、基本的にはすでにあなたのためにそれを行っている:D
は、このクラスを拡張し、この内、あなたのスレッドを配置してみます。試してみる価値。
import android.os.AsyncTask;
public class ThreadWorker extends AsyncTask<Void, Void, Boolean> {
ThreadWorker.Method CURRENT_METHOD;
enum Method{
PREEXCEUTE,
BACKGROUND,
POSTEXECUTE,
PROGRESSUPDATE,
}
@Override
protected void onPreExecute() {
try{
CURRENT_METHOD = Method.PREEXCEUTE;
preExecute();
}catch(Exception e){
onError(Method.PREEXCEUTE);
}
}
@Override
protected Boolean doInBackground(Void... params) {
try{
CURRENT_METHOD = Method.BACKGROUND;
background();
}catch(Exception e){
onError(Method.BACKGROUND);
}
return true;
}
@Override
protected void onProgressUpdate(Void... v){
try {
CURRENT_METHOD = Method.PROGRESSUPDATE;
onProgressUpdate();
} catch (Exception e) {
onError(Method.PROGRESSUPDATE);
}
}
protected void onPostExecute(Boolean result) {
try{
CURRENT_METHOD = Method.POSTEXECUTE;
postExecute();
}catch(Exception e){
onError(Method.POSTEXECUTE);
}
}
public ThreadWorker.Method getCurrentThread(){
return CURRENT_METHOD;
}
public void preExecute() throws Exception{};
public void background() throws Exception{};
public void postExecute() throws Exception{};
public void onProgressUpdate() throws Exception{};
public void onError(Method m){};
}
私は正常にあなたがAsyncTaskを起動すると、あなたのアプリケーション内で実行される2つのスレッドを持って、このクラス
なぜなら、同じ 'AsyncTask'を使用して' doInBackground'から 'ListView'の最終データだけを返すのはなぜですか? – Luksprog
はい私はしようとしましたが、エラーメッセージが表示され、2つのスレッドを実行できないというメッセージが表示されます。 –