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

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

我知道 ActivityGroup 已被弃用。

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

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

I used this example并尝试使用 ActivityGroup 进行一些简单的 Activity 。

这与任何 Activity 完美配合(即使我使用 VideoView 播放视频)。

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

我所说的“不工作”是指 window.getDecorView() 来自 native Activity ,它始终返回透明 View ,而不是实际内容 View 。

我应该怎么做?请帮助我。

最佳答案

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

}

关于android - 我可以将 NativeActivity 与 ActivityGroup 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26217400/

相关文章:

Android Play 上传失败,错误代码 : The maximum SDK version cannot be lower than the minimum SDK version

Android - 如何开发到 bluegiga 设备?

java - ExpandableListView 不调用 getGroupView 也不填充

android - 格局反了?

java - ScrollView 内的 android 图像和按钮

java - 无法解析相应的 jni 函数

android - 覆盖 Android 的 Gmail 应用最小字体大小(通讯)

android - 按钮不显示在 Activity 底部 - android

android - 来自 NDK 的 GetFilesDir()?

android - 如何从 Android 应用调用 OpenSSL SRP API?