Android 安卓:执行onPause后,按Back(和方向更改)会导致挂起
因此,当按下Home(主页)按钮时,我设法使程序失去焦点,并在恢复时成功地使活动恢复,不幸的是,当屏幕发生变化时,我使用的方法会导致线程挂起,而不会立即失去焦点 编辑--放在简历的主活动中Android 安卓:执行onPause后,按Back(和方向更改)会导致挂起,android,orientation,back,freeze,onpause,Android,Orientation,Back,Freeze,Onpause,因此,当按下Home(主页)按钮时,我设法使程序失去焦点,并在恢复时成功地使活动恢复,不幸的是,当屏幕发生变化时,我使用的方法会导致线程挂起,而不会立即失去焦点 编辑--放在简历的主活动中 @Override protected void onPause() { super.onPause(); synchronized (mPauseLock) { mPaused = true; } return; } @Override public void
@Override
protected void onPause()
{
super.onPause();
synchronized (mPauseLock) {
mPaused = true;
}
return;
}
@Override
public void onResume() {
super.onResume();
synchronized (mPauseLock) {
mPaused = false;
mPauseLock.notifyAll();
}
}
public class ThreadClass extends Thread
{
boolean isRunning;
public void BeginThread()
{
if (mGameIsRunning) {
onResume();
}else{
if(isRunning)return;
isRunning=true;
start();
mGameIsRunning=true;
}
}
public void run()
{
Canvas canvas;
while(isRunning)
{
canvas=null;
try
{
canvas = canvasClass.surfaceHolder.lockCanvas(null);
synchronized (canvasClass.surfaceHolder)
{
//processClass.processGame();
canvasClass.onDraw(canvas);
}
}finally{
if(canvas!=null)
{
canvasClass.surfaceHolder.unlockCanvasAndPost(canvas);
}
}
synchronized (mPauseLock)
{
while (mPaused)
{
try
{
mPauseLock.wait();
} catch (InterruptedException e) {
}
}
}
}
}
}
必须更改哪些内容才能使活动在按Home键时暂停,并在按Back键时从堆栈中抛出?同样如前所述,当屏幕方向改变时也会发生同样的问题。为什么onResume在thread类中? 如果这是实际代码,请将其删除到activity类中。
其余的代码看起来不错。起初它是在活动类中,我只是随风叫喊,这两种方式似乎都没有什么区别。除按Home/暂停外,屏幕更改时仍挂起。编辑:更新代码