Удаление тяжелых вычислений из потока пользовательского интерфейса Android

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

7
задан Zaheer Ahmed 19 December 2012 в 10:44
поделиться