Android 使用Thread.sleep()暂停和恢复应用程序
嗨,Android 使用Thread.sleep()暂停和恢复应用程序,android,android-lifecycle,Android,Android Lifecycle,嗨, 在我的应用程序中,我试图使用Thread.sleep(100)暂停我的线程,而它的后台是为了使用更少的cpu,但当我打开它时它会冻结。 我意识到当我重新打开应用程序时,onResume没有被调用 你知道为什么吗 public void onPause() { pause = true; Log.d("mSTATE","THREADPAUSE"); } public void onResume() { pause = false;
在我的应用程序中,我试图使用Thread.sleep(100)暂停我的线程,而它的后台是为了使用更少的cpu,但当我打开它时它会冻结。
我意识到当我重新打开应用程序时,
onResume
没有被调用
你知道为什么吗
public void onPause() {
pause = true;
Log.d("mSTATE","THREADPAUSE");
}
public void onResume() {
pause = false;
running = true;
Log.d("mSTATE","THREADRESUME");
}
public void run() {
while(running){
while(pause && running){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
while (!pause && running) {
Canvas c = null;
try {
c = sHolder.lockCanvas(null);
synchronized (sHolder) {
doDraw(c);
powerUps();
}
} finally {
if (c != null) {
sHolder.unlockCanvasAndPost(c);
}
}
}
}
Log.d("mState","EndofRun");
}
当您将线程置于睡眠状态时,也会阻塞UI线程,从而导致应用程序冻结 您需要以Android方式检查线程以获得最佳性能
Surface View线程是一个UI线程。如果您用另一个线程等中断它,您只需冻结UI。您建议我如何实现暂停和恢复?