我有一个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端有一个新线程