正試圖暫停一個線程,然後恢復它,但是當我暫停它凍結應用程序。我嘗試了幾件事,但沒有運氣。 我的主要活動是調用線程,並有按鈕,將暫停線程和第二個可運行的類,它開始運行,並繪製我的情節,其中包括和暫停功能。我執行的是代碼遵循在java中的等待/恢復線程android
主要活動
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDoctorDynamicXYDatasource= new DoctorDynamicXYDatasource(this, mHandler);
findViewById(R.id.Pause).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
synchronized(pp){
mDoctorDynamicXYDatasource.Pause();
Log.i("File", "Pause button ");
}
}
});
findViewById(R.id.Start).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
draw();
}
});
public void draw(){
///some code
pp= new Thread(data);
pp.start();
}
and on the **DoctorDynamicXYDatasource class** am doing the follow
public class DoctorDynamicXYDatasource extends Activity implements Runnable {
public void run() {
//loading and draw on the plot
}
public void Pause() {
synchronized (Thread.currentThread()) {
Log.i("File","pause");
try {
Thread.currentThread().wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我怎麼可以暫停線程,然後再次啓動它。當我暫停它的線程鎖而不是隻有平局陰謀所有的屏幕和按鈕可以進行選擇,而不
編輯
我補充一點,你告訴我,從暫停的主要活動代碼按鈕從我的DoctorDynamicXYDatasource類調用暫停功能,但它不同步以等待線程。我也不允許從其他類調用暫停功能嗎?
mDoctorDynamicXYDatasource= new DoctorDynamicXYDatasource(this, mHandler);
findViewById(R.id.Pause).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("File", "Pause button pressed");
mDoctorDynamicXYDatasource.pause();
}
});
當你暫停主線程(UI線程) – ngesh 2012-02-22 09:29:28