即使調用活動的onPause,我的SurfaceView也不會被破壞。是否可以手動銷燬SurfaceView?
我照顧線程的
public void surfaceCreated(SurfaceHolder holder) {
if (mGameThread.getState() == Thread.State.TERMINATED) {
createGameThread(getHolder(), getContext());
}
mGameThread.setRunning(true);
mGameThread.start();
}
public void surfaceDestroyed(SurfaceHolder holder) {
boolean retry = true;
mGameThread.setRunning(false);
while (retry) {
try {
mGameThread.join();
retry = false;
} catch (InterruptedException e) {
}
}
}
作爲一個黑客我必須檢查的onResume線程的狀態,如果線程已經結束,我會完成活動
protected void onResume() {
Log.d(mLogTag, "onResume()");
super.onResume();
if (mGameThread != null) {
if (mGameThread.getState() == Thread.State.TERMINATED) {
finish();
}
}
}
不幸的是,不可能將線程處理從surfaceDestroyed和surfaceCreated移動到activity的onPause()和onResume()。是否有可能手動銷燬onPause()中的SurfaceView並在onResume()中重新創建它?
萬分感謝! – Flo354 2016-08-15 15:45:14