私の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();
}
}
}
}
今、私がしたことは「正しく」ないことをかなり確信しています。(ただし、機能しているようです。システムはクラッシュしません)。基本的に、このブール値のthreadcompleteなしで、newthreadが計算を終了したことをUIスレッドにどのように伝えることができるかわかりません。これを行うための「正しい」方法はありますか?