我正在尝试为基于OpenGL的Android游戏添加蓝牙支持。 但是,在设置新意图startActivity或startActivityForResult时,后台的OpenGL渲染会变黑。 我在弹出窗口中启动意图,这样你就可以在后台看到OpenGL渲染,直到新意图开始出现。
我设置的目的是BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION 当警报显示仅在我按下它时才会显示为黑色,而不是之前。 我用来创建新意图的代码是:
if (finalAdapter.getScanMode() !=
BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
discoverableIntent.putExtra("Theme", "Transparent");
a.startActivityForResult(discoverableIntent, 42);
}
我试图设置样式以使意图透明并显示OpenGL思想,意图的背景可能是不透明的。 即使我接受黑色不透明的意图,在尝试使用finishActivity删除此意图后,我甚至无法恢复OpenGL渲染
删除意图的代码是
cancelButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
a1.finishActivity(42);
self.dismiss();
}
});
游戏逻辑仍然有效,渲染更新功能仍在调用中。这只是屏幕是黑色的。 也许我需要重新加载OpenGL资源?哪个看起来很奇怪? 意图是否真的被删除了?为什么我会出现黑屏?
谢谢。
答案 0 :(得分:0)
好的,显然当我调用startActivity时onPause和onResume分别被调用为主要活动。 我在onRestart和onStop的情况下处理OpenGL,但是当只调用onPause和onResume时,我没有正确地重新加载OpenGL。 那就是问题。