리눅스 & 안드로이드
Android Thread의 Pause & Resume
세월의돌
2012. 8. 7. 21:25
간만의 공개(?) 포스팅...
Android의 java.lang package에 포함되어 있는 Thread에는 resume()과 suspend() method가 구현되어 있다.
하지만 어느시점부터 deprecated 되어 버렸다.
뭐, 책임 질 수 없으니 필요하면 직접 구현해서 쓰라는 얘기겠지...
그래서 구글링으로 찾아서 사용하고, 정리해 둔다. (오래되어 출처는 잊어버림-0- 출처는 역시나 StackOverflow)
private Object mPauseLock;
@Override
public void run() {
while (!mFinished) {
//Do something you need!!
synchronized (mPauseLock) {
while (mPaused) {
try {
mPauseLock.wait();
} catch (InterruptedException e) {}
}
}
}
}
/**
* Pause this thread
*/
public void onPause() {
synchronized(mPauseLock) {
mPaused = true;
}
}
/**
* Resume this thread
*/
public void onResume() {
synchronized(mPauseLock) {
mPaused = false;
mPauseLock.notifyAll();
}
}