我的 Android 应用程序使用了一个特别大的计算,它不断使系统崩溃,因为它位于 Activity 的 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();
}
}
}
}
现在,我很确定我所做的不是“正确的”。(虽然它似乎有效。系统不会崩溃)。基本上,我不确定如何告诉 UI 线程 newthread 在没有这个布尔线程完成的情况下完成了计算。有没有“正确”的方法来做到这一点?