我知道ActivityGroup已被弃用。
但是我尝试将NativeActivty的用户界面与一些Java/Android API View
我正在尝试制作一个混合用户界面,其中一部分屏幕来自NativeActivity
I used this example并尝试了一些简单的活动。
这对于任何ActivityGroup(即使我使用videoview播放视频)都非常有效。
但当我试图加载时,它不起作用。(我尝试了ndk样本中的Teapot demo)。
我所说的“不工作”是指从本机活动返回的Activity总是透明视图,而不是实际的内容视图。
我该怎么做?请帮帮我。

最佳答案

这一次我找到了一个解决办法,而且效果很好。但只是为了ndk演示。
在activitygroup子类oncreate方法中,编写以下代码。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LocalActivityManager lam = getLocalActivityManager();

    Intent intent = new Intent();
    intent.setClass(this, TeapotNativeActivity.class);

    Window window = lam.startActivity("xxx", intent);

    // reflect call "willYouTakeTheSurface"
    NativeActivity callback = JavaCalls.callMethod(window.getDecorView(), "willYouTakeTheSurface");
    if (callback != null) {
        window.takeSurface(null);
        getWindow().takeSurface(callback);
        getWindow().takeInputQueue(callback);
    }


    setContentView(window.getDecorView());

}

10-07 18:30