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

} 
相關問題