Activity 在 JNI 中每个 tick 更改的实例

Activity instance changing per tick in JNI

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

(这不是关于使 activity class 成为全局引用的问题)

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

我将这两个调用都传递给 Java Activity 对象的一个​​实例。这样我就可以回电 Java 以便(例如,关闭广告、与 Java Twitter 互动等)。

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

Q2:我已经尝试在我的 Native Init() 函数上缓存 Activity 实例并将其存储在静态中。这在某些设备上有效,但在 android 5.0 之前的设备上,当我在 Tick() 函数中使用实例时,我得到一个过时的引用 JNI 错误。将其设为全局 'reference' 就像我在 OnLoad() 函数中对 activity 'class' 所做的那样对其进行排序吗?

Q3:当用户关闭插屏广告时,我在Java端收到回调,传给原生端(比如重启音乐)。这会创建一个新的本机线程吗?我之前缓存的 Activity 实例是否仍然有效?

非常感谢,

史蒂夫

确定找到了我自己的答案。

1.No。 2.Yes,做 GlobalReference 的事情。 3.No,但 Java 侧一个新线程。