活动实例在JNI中每隔一秒改变一次

Activity instance changing per tick in JNI

本文关键字:一秒 实例 改变 一次 活动 JNI      更新时间:2023-10-16

我有一个Android生命周期问题,我在其他任何地方都找不到答案。

(这不是关于使活动类成为全局ref的问题)

我使用标准的JNI->Native Init()和Tick()调用在本机端运行游戏。与洛杉矶的演示非常相似。

我将Java Activity对象的实例传递给这两个调用。这样我就可以回电话了为了(例如,关闭广告,与Java Twitter交互,等等)。

Q1:当我调用Tick()调用本机调用时,这会创建一个新线程吗?如果是这样,为什么我不必从本机调用DetachCurrentThread ?

Q2:我试过在我的Native Init()函数上缓存Activity实例并将其存储在静态中。这在某些设备上有效,但在android 5.0之前的设备上,当我在Tick()函数中使用实例时,我得到一个过时的引用JNI错误。是否会使这成为一个全局的"引用",就像我在OnLoad()函数中为活动"类"做的那样?

Q3:当用户关闭插页式广告时,我在Java端获得一个回调,我将其传递给本机端(例如,重新启动音乐)。这会创建一个新的Native线程吗?我以前缓存的Activity实例仍然有效吗?

许多谢谢,

史蒂夫。

Ok找到了我自己的答案。

1.。2.是的,做GlobalReference。3.没有,但是Java端有一个新线程