【发布时间】:2015-10-01 17:03:08
【问题描述】:
我知道这里有很多关于此主题的问题和答案,但我无法解决以下问题以在我的应用中恢复线程。
这是我的可运行文件:-
Runnable ViewPagerVisibleScroll= new Runnable() {
@Override
public void run() {
if (i <= mAdapter.getCount() - 1) {
verticalViewPager.setCurrentItem(i, true);
handler.postDelayed(ViewPagerVisibleScroll, 3000);
i++;
while (isPaused) {
synchronized (ViewPagerVisibleScroll) {
// wait for resume() to be called
try {
ViewPagerVisibleScroll.wait();
// isPaused = false;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
};
暂停和恢复方法:-
public void pause() {
synchronized (ViewPagerVisibleScroll) {
isPaused = true;
}
}
public synchronized void resume() {
synchronized (ViewPagerVisibleScroll) {
isPaused = false;
// notify anybody waiting on "this"
ViewPagerVisibleScroll.notify();
}
}
我的问题是当我调用 pause 方法时线程将 pause() 但当我调用 resume() 时它不会恢复。请帮我解决这个问题。
【问题讨论】:
标签: java android multithreading runnable