пытаюсь приостановить поток, а затем возобновить его, но когда я сделаю паузу, он заморозит приложение. Я пробую несколько вещей, но не повезло. в моей основной деятельности, вызывающей поток, и кнопку, которая будет приостанавливать поток и второй класс запуска, который он запускает, и рисовать на моем сюжете, который включает в себя и функцию паузы. код, который я осуществить это следоватьwait/resume thread in 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();
}
}
}
как я могу приостановить поток и затем запустить его снова. когда я приостановить нить его заблокировать, а не только Жеребьевка сюжет весь экран и кнопки, не в состоянии сделать выбор
EDIT
я добавить код, который вы мне сказать, и от основной деятельности с паузой кнопка am вызывает фрейм паузы из моего класса 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();
}
});
Его очевидность для приложения замораживания при приостановке основной нити (поток пользовательского интерфейса) – ngesh