我的游戏需要很长时间从后台加载。在加载期间,屏幕是黑色的(约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