Can I use NativeActivity with ActivityGroup?

百般思念 提交于 2019-12-07 16:49:47

问题


I know ActivityGroup is deprecated.

But I am trying to combine user interface of NativeActivty with some Java/Android API Views.

I am trying to make one hybrid user interface where a part of the screen is from NativeActivity.

I used this example and tried ActivityGroup with some simple activities.

This work perfectly with any Activity (Even if I play video using VideoView).

But when I tried to load NativeActivity it not working. (I tried Teapot demo from NDK samples).

By "not working" I mean window.getDecorView() from native activity it always return transparent view, not actual content view.

How should I do it? Please help me.


回答1:


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

}


来源:https://stackoverflow.com/questions/26217400/can-i-use-nativeactivity-with-activitygroup

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!