Ứng dụng Android của tôi sử dụng một tính toán đặc biệt lớn khiến hệ thống bị treo vì nó nằm trên chuỗi giao diện người dùng trong Hoạt động. Tôi có chút tự tin về đa luồng và vì vậy tôi muốn có một số mẹo về cách thực hiện chính xác. Đây là những gì tôi cóLấy tính toán nặng khỏi Giao diện người dùng Android
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();
}
}
}
}
Bây giờ, tôi khá chắc chắn những gì tôi đã làm không "đúng". (Nó dường như làm việc mặc dù. Các sistem không sụp đổ). Về cơ bản, tôi không chắc chắn làm thế nào các chủ đề giao diện người dùng có thể được nói rằng newthread đã hoàn thành việc tính toán mà không có boolean, threadcomplete. Có cách nào "đúng" để thực hiện việc này không?
hãy xem trên AsyncTask, http://developer.android.com/reference/android/os/AsyncTask.html –