3

我知道ActivityGroup已被弃用。我可以使用NativeActivity和ActivityGroup吗?

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

我试图做一个混合用户界面,其中屏幕的一部分是从NativeActivity

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

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

但是,当我试图加载NativeActivity它无法正常工作。 (我试过来自NDK样品的Teapot demo)。

“不工作”我的意思是从原生活动window.getDecorView()它总是返回透明的观点,而不是实际的内容视图。

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

回答

2

这次我找到了解决方法,并且工作正常。但只是为了ndk演示。

on你的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()); 

} 
相关问题