ACTION_REQUEST_DISCOVERABLE的startActivity导致OpenGL呈现为黑色,即使在删除之后也是如此

时间:2013-11-29 10:29:02

标签: android android-intent opengl-es bluetooth

我正在尝试为基于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资源?哪个看起来很奇怪? 意图是否真的被删除了?为什么我会出现黑屏?

谢谢。

1 个答案:

答案 0 :(得分:0)

好的,显然当我调用startActivity时onPause和onResume分别被调用为主要活动。 我在onRestart和onStop的情况下处理OpenGL,但是当只调用onPause和onResume时,我没有正确地重新加载OpenGL。 那就是问题。