我的遊戲需要很長時間從後臺加載。在加載期間,屏幕是黑色的(約5-7秒,所以用戶可能會認爲它崩潰)。如何顯示吐司沒有完成加載上下文
我決定在進入前景時顯示敬酒。
protected void onResume() {
System.out.println("onResume method called");
Context context = getBaseContext();
// Context context = getApplicationContext();
CharSequence text = "i appreciate your patience";
Toast toast = Toast.makeText(context, text, Toast.LENGTH_LONG);
toast.show();
super.onResume();
wl.acquire();
if (accelerometerEnabled) {
accelerometer.enable();
}
}
但敬酒顯示出來後,才完成恢復(這使得它沒用) 我試過getApplicationContext,getBaseContext以及活動本身。 所以有可能在沒有我的應用程序上下文的情況下直接在窗口上添加烤麪包? (也許在系統級上下文)
我可以把敬酒asynctask(以及如何?),而不是?我不認爲有可能把我的遊戲邏輯放在那裏。當進入前景時,我基本上只是恢復OpenGL視圖。 – OMGPOP
你應該從UI線程調用你的麪包,所以它不應該進入異步任務。 至於重新啓動OpenGL視圖,您應該有一個渲染狀態,等待您的遊戲數據異步加載。換句話說,當遊戲重新開始時,會出現一個真正輕的「加載」屏幕,並在另一個線程中啓動所有預處理。預處理完成後,恢復渲染。 你得到滯後的原因是因爲當你離開後臺時你的表面被重新創建,並且你正試圖在UI線程上重建你的邏輯。 – WindyB