如何创建一个按钮来暂停循环内部的线程和另一个按钮 恢复。
Runnable myRun = new Runnable(){
public void run(){
for(int j =0 ;j<=words.length;j++){
synchronized(this){
try {
wait(sleepTime);
bt.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}});
bt2.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
notify();
}
});
} catch (InterruptedException e) {
e.printStackTrace();
} }
runOnUiThread(new Runnable(){
public void run(){
try {
et.setText(words[i]);
i++;
} catch (Exception e) {
e.printStackTrace();
}
}});
}}};
做一些事情说words.lenght = 1000次
然后假设用户想要在中间休息
单击暂停按钮,id = bt此按钮暂停线程,直到和用户
点击恢复,ID = bt1
答案 0 :(得分:0)
以下是一个提示,我认为你可以用来解决你的问题。它是从我粘贴在最后的链接中复制的。
等待可以被另一个进程“唤醒”,该进程在正在等待的监视器上调用notify而睡眠不能。此外,等待(和通知)必须发生在监视器对象上同步的块中,而睡眠不会:
Object mon = ...;
synchronized (mon) {
mon.wait();
}
此时,当前正在执行的线程等待并释放监视器。另一个线程可以做
synchronized(mon){mon.notify(); (在同一个mon对象上)和第一个线程(假设它是在监视器上等待的唯一线程)将被唤醒。
答案 1 :(得分:0)
你这样做:
How to indefinitely pause a thread in Java and later resume it?
只有您通过按钮“suspend()
s
OnClickListener
和其他方法