Мога ли да използвам NativeActivity с ActivityGroup?

Знам, че ActivityGroup е остарял.

Но се опитвам да комбинирам потребителския интерфейс на NativeActivty с някои Java/Android API Views.

Опитвам се да направя един хибриден потребителски интерфейс, където част от екрана е от NativeActivity.

Използвах този пример и опитах ActivityGroup с някои прости дейности.

Това работи перфектно с всеки Activity (Дори ако пускам видео с помощта на VideoView).

Но когато се опитах да заредя NativeActivity, той не работи. (Опитах демонстрация на Teapot от образци на НДК).

Под „не работи“ имам предвид window.getDecorView() от родната дейност винаги връща прозрачен изглед, а не действителен изглед на съдържание.

Как трябва да го направя? Моля, помогни ми.


person Vaibhav Jani    schedule 06.10.2014    source източник


Отговори (1)


Този път намерих решение за това и работи добре. но само за 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());

}
person Haitao    schedule 18.12.2014