【发布时间】:2014-02-19 19:04:41
【问题描述】:
我使用 OpenCV 和 Android NDK 制作了一个图像处理应用程序。现在,我想在我的主要活动中显示结果,该活动是包含一些基于本机图像处理应用程序的数据和图表的仪表板。
我环顾四周,发现原生代码只能作为活动(NativeActivity 类)运行,这是我目前的方法,主要活动被原生活动reference#1的空白屏幕替换。
我的问题是,这是真的吗?如何从主 Activity 运行我的本机代码,同时保持主 Activity 在前台处于活动状态而本机代码在后台运行?
谢谢大家!
【问题讨论】:
-
我猜你也可以从 Service 运行你的本地代码。
-
成功了吗?还是有什么问题?
-
嗨@KanakSony,我尝试了你的建议。我做了一个服务,它基本上调用了本机活动(在 onHandleIntent 中)。我仍然得到错误 can't instantiate class com.example.ImageprocessService;没有空的构造函数
-
首先,删除您的构造函数,因为您从 Service 继承了一个公共的零参数构造函数。然后,要么使它成为一个静态内部类,要么使它成为一个独立的公共 Java 类。您不能在这里使用常规的内部类,因为 Android 无法创建该内部类的实例。
-
如果您根本不想要本地活动,为什么不直接使用从 Java 活动到 C++ 函数的 JNI 调用?
标签: android opencv android-ndk native