私のAndroidアプリは、アクティビティのUIスレッド上にあるため、システムをクラッシュさせる非常に大きな計算を採用しています。 私はマルチスレッドにはほとんど自信がないので、正しく行う方法についていくつかのヒントを得たいと思います。 これは私が「正しい」ではありません、私がやっていることはかなり確信して、私は今Android UIから重い計算をするスレッド
class ActivtyName extends Activity{
boolean threadcomplete = false;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//stuff
Runnable newthread = new Runnable(){
@Override
public void run() {
doBigComputation();
threadcomplete=true;
}
};
newthread.run();
boolean b = true;
while(b){
if(threadcomplete){
b=false;
startTheApp();
}
}
}
}
を持っているものです。 (それは動作するようですが、システムはクラッシュしません)。基本的には、newthreadがこのブール値なしで計算を完了したことをUIスレッドがどのように伝えることができるのかよくわかりません、threadcomplete。これを行うには "正しい"方法がありますか?
は忙しい、スレッドを待つ参加しませんを使用して、AsyncTaskの表情を取るhttp://developer.android.com/reference/android/os/AsyncTask.html –