我有一个Android生命周期问题,我无法在其他任何地方找到答案。
(这不是关于使活动类成为全局参考的问题)
我正在使用标准的JNI-> Native Init()和Tick()调用来在本机端运行游戏。与San Angeles演示非常相似。
我将这两个调用都传递给Java Activity对象的一个实例。这是我可以回电话 到Java,以便(例如,关闭广告,与Java Twitter交互等)。
Q1:当我调用Tick()来调用我的本机调用时,这是否会创建一个新线程,如果是这样,为什么我不必从本机端调用DetachCurrentThread?
Q2:我尝试在Native Init()函数上缓存Activity实例并将其存储在静态中。这适用于某些设备,但在Android 5.0之前的设备上,当我在Tick()函数中使用该实例时,我得到一个陈旧的引用JNI错误。将我的OnLoad()函数中的活动'class'作为全局“引用”进行排序吗?
问题3:当用户关闭插页式广告时,我在Java端获得回调,我将其传递给本机端(例如,重新启动音乐)。这会创建一个新的Native线程吗?我之前缓存的Activity实例是否仍然有效?
非常感谢,
史蒂夫。
答案 0 :(得分:0)
好的找到了我自己的答案。
1.No。 是的,做GlobalReference的事情。 3.No,但Java方面是一个新线程。