3

我知道ActivityGroup已弃用。

但我正在尝试将用户界面NativeActivty与一些 Java/Android API结合起来View

我正在尝试制作一个混合用户界面,其中一部分屏幕来自NativeActivity.

我使用了这个例子并尝试ActivityGroup了一些简单的活动。

这适用于任何Activity(即使我使用 VideoView 播放视频)。

但是当我尝试加载NativeActivity它时不起作用。(我从 NDK 示例中尝试了Teapot 演示)。

“不工作”是指 window.getDecorView()从本机活动中它总是返回透明视图,而不是实际的内容视图。

我该怎么做?请帮我。

4

1 回答 1

2

This time I found a workaround for it, and works fine. but just for the ndk demos.

on your ActivityGroup sub class onCreate method, write the following code.

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());

}
于 2014-12-18T07:48:53.370 回答