2012-04-17 23 views
6

Tôi vừa nhận thấy rằng việc tạm ngưng và tiếp tục trong luồng Android đã không được chấp nhận. Công việc xung quanh cho điều này là gì hoặc làm thế nào tôi có thể đình chỉ và tiếp tục một sợi trong Android?Cách Tạm dừng và Tiếp tục Chủ đề trong Android?

+0

thế nào về dịch vụ: http://developer.android.com/ hướng dẫn/chủ đề/nguyên tắc cơ bản/services.html – Leo

+0

Hi LeoLink Tôi không nghĩ rằng các dịch vụ sẽ phân loại vấn đề của tôi. thanks anywyays :) – rosesr

Trả lời

7

Thật vậy, tạm dừng hoặc dừng chuỗi tại các điểm ngẫu nhiên là một ý tưởng không an toàn, đó là lý do tại sao các phương pháp này không được chấp nhận.

Điều tốt nhất bạn có thể làm theo ý kiến ​​của tôi là phải có điểm cố định tạm dừng trong phương pháp của chủ đề của bạn run và dừng lại ở đó sử dụng wait:

class ThreadTask implements Runnable { 

    private volatile boolean paused; 
    private final Object signal = new Object(); 

    public void run() { 
     // some code 

     while(paused) { // pause point 1 
      synchronized(signal) signal.wait(); 
     } 

     // some other code 

     while(paused) { // pause point 2 
      synchronized(signal) signal.wait(); 
     } 

     // ... 
    } 

    public void setPaused() { 
     paused = true;  
    } 

    public void setUnpaused() { 
     paused = false; 
     synchronized(signal) signal.notify(); 
    } 
} 
+0

Oh ok Tôi hiểu ngay bây giờ @Tudor. btw làm rõ khác là điều này tương tự như tín hiệu trong chủ đề? – rosesr

+1

@rosesr: Nó tương tự như biến điều kiện trong linux chẳng hạn. – Tudor