Android: 如何从本地代码中广播意图?

11

是否可以从本地代码广播Intent?如果可以,是否有相关API的文档和/或示例代码?

3个回答

12

你需要调用Java API函数来调用它 - 没有用于意图的JNI接口。

首先查找Intent类,然后查找构建意图和广播它们的方法,并调用它们。

编辑:这是一个不完整的示例。将jniEnv传递给所有JNI函数。

jclass activityClass = jniEnv->FindClass("android/app/Activity");
jmethodID startAcitivtyMethod = jniEnv->GetMethodID(activityClass , "startActivity", "(Landroid/content/Intent;)V");
jniEnv->CallVoidMethod(yourActivityObject, startAcitivityMethod, yourIntentObject);

非常好的解释。即使那不是完整的描述,你也值得+1。 - N-JOY
1
但是如果我想从回调函数(在另一个线程中)调用该函数怎么办?这种情况下,我无法获取jniEnv。 - Juude
有没有像这样的非jni解决方案? - RocketRandom

0

我认为从本地代码广播消息并不复杂,但前提是必须从Android Java应用程序调用本地函数,这样你才能传递上下文。据我所知,对于纯本地应用程序来说,并没有上下文这样的东西,因此你无法广播意图。


0
即使是纯本地应用程序也可以广播一个意图。这意味着,即使本地活动是启动器,我们仍然可以广播意图。

你能解释一下吗?你的答案与这里的其他答案相矛盾。 - zeitgeist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接