我可以将NativeActivity与ActivityGroup一起使用吗



我知道ActivityGroup已被弃用。

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

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

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

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

但当我尝试加载NativeActivity时,它不起作用。(我尝试了NDK样本中的茶壶演示)。

我所说的"不工作"是指来自本机活动的window.getDecorView(),它总是返回透明视图,而不是实际的内容视图。

我该怎么做?请帮帮我。

这一次我找到了一个解决方法,效果很好。但只是为了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());
}

相关内容

  • 没有找到相关文章

最新更新