![]() |
1
7
在Android NDK中重启很烦人。您拥有的任何静态数据都会被粘住,因为它会重用进程,所以您需要手动重置在新运行中无效的任何数据(如任何OpenGL纹理或顶点缓冲区对象)。它还为您提供了一个新的Java线程、新的Java应用程序和其他对象,因此在应用程序的新实例中可能是新的对象的任何缓存全局引用也需要清除。 所以我使用的策略有两个:最小化重启,重启时对所有东西进行核弹攻击。 您可以通过处理app中的configChanges来最小化重启,正如它在对您链接的问题的回答中所说的那样。然后,打开键盘或旋转不会导致应用程序重新启动,这对于任何启动时间不重要的应用程序来说都应该如此。
一旦不再有对旧线程的突出引用(即,一旦释放了所有NewGlobalRef对象),旧线程就应该消失。 |
![]() |
2
2
如果VM重新启动,则从头开始。如果不是的话,国家就在你离开的地方。从NewGlobalRef下提取内容的缓存对象引用不会失效。我还写了一些关于伍伊德那篇文章的笔记 on the NDK mailing list .
|
![]() |
Ray Jonathan · 导入的函数不是函数错误 7 年前 |
![]() |
Igor Vurdelja · JAVA和JNI之间的速度差异 7 年前 |
![]() |
Abegail · 在OpenCV中检测后,将图像放置在矩形上 7 年前 |
![]() |
Rodrigo Schreiner · 在背景图像顶部反应本机按钮组 7 年前 |