Мое приложение для Android использует особенно большие вычисления, которые постоянно приводят к сбою системы, потому что они находятся в потоке пользовательского интерфейса в Activity. Я мало верю в многопоточность и поэтому хочу получить несколько советов о том, как это сделать правильно. Это то, что у меня есть
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 завершил вычисление без этого логического значения threadcomplete. Есть ли «правильный» способ сделать это?