【问题标题】:Can I use NativeActivity with ActivityGroup?我可以将 NativeActivity 与 ActivityGroup 一起使用吗?
【发布时间】:2014-11-30 18:45:48
【问题描述】:

我知道ActivityGroup 已被弃用。

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

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

I used this example 并尝试ActivityGroup 进行一些简单的活动。

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

但是当我尝试加载 NativeActivity 时,它无法正常工作。 (我从 NDK 样本中尝试了 Teapot demo)。

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

我该怎么做?请帮帮我。

【问题讨论】:

    标签: android android-layout android-ndk activitygroup native-activity


    【解决方案1】:

    这次我找到了解决方法,并且工作正常。但仅用于 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());
    
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2020-08-04
      • 2018-10-23
      • 2011-02-22
      • 2021-03-16
      • 2016-11-20
      • 2019-01-25
      • 2011-06-11
      • 2017-02-20
      相关资源
      最近更新 更多