我知道ActivityGroup
已被弃用。
但我正在尝试将NativeActivty
的用户界面与某些Java / Android API View
结合起来。
我正在尝试创建一个混合用户界面,其中部分屏幕来自NativeActivity
。
I used this example并尝试了ActivityGroup
一些简单的活动。
这与任何Activity
完美配合(即使我使用VideoView播放视频)。
但是当我尝试加载NativeActivity
时,它无效。 (我尝试过来自NDK样本的 Teapot demo 。
“不工作”我的意思是window.getDecorView()
来自原生活动,它总是返回透明视图,而非实际内容视图。
我该怎么办?请帮帮我。
答案 0 :(得分: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());
}