В моем приложении для 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. Есть ли «правильный» способ сделать это?