正试图暂停一个线程,然后恢复它,但是当我暂停它冻结应用程序。我尝试了几件事,但没有运气。 我的主要活动是调用线程,并有按钮,将暂停线程和第二个可运行的类,它开始运行,并绘制我的情节,其中包括和暂停功能。我执行的是代码遵循在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