3

나는 ActivityGroup이 (가) 사용되지 않습니다.NativeActivity를 ActivityGroup과 함께 사용할 수 있습니까?

하지만 NativeActivty의 사용자 인터페이스와 일부 Java/Android API View을 결합하려고합니다.

화면의 일부가 NativeActivity 인 하이브리드 사용자 인터페이스를 하나 만들려고합니다.

I used this example 일부 간단한 작업으로 ActivityGroup을 시도했습니다.

이 모든 작업은 완벽하게 Activity과 작동합니다 (VideoView를 사용하여 비디오를 재생하더라도).

그러나로드 할 때 NativeActivity이 작동하지 않습니다. (나는 NDK 샘플에서 Teapot demo을 시도했다).

"작동하지 않음"이란 고유 활동에서 항상 window.getDecorView()을 의미합니다. 이는 실제 내용보기가 아닌 항상 투명한보기를 반환합니다.

어떻게해야합니까? 도와주세요.

답변

2

이번에는 해결 방법을 찾았으며 정상적으로 작동합니다. 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()); 

}