Я не совсем понимаю, почему вам нужно создать отдельный поток.
doinBackground (Process) - это отдельный поток от потока postExecute (UI).Поэтому, когда вы выполните шаг 1, он автоматически перейдет в отдельный поток от шага 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){};
}
Я успешно делаю это в этом классе