AndroidJNI.PopLocalFrame 弹出局部帧

static function PopLocalFrame (result : IntPtr) : IntPtr

Description描述

Pops off the current local reference frame, frees all the local references, and returns a local reference in the previous local reference frame for the given result object.

弹出关闭当前局部引用帧,释放所有的本地引用,并返回一个局部引用,在前一个局部引用帧,用于给定的结果对象。

PushLocalFrame为一定数量的局部引用创建了一个使用堆栈,而PopLocalFrame负责销毁堆栈顶端的引用。

Push/PopLocalFrame函数对提供

了对局部引用的生命周期更方便的管理。

在管理局部引用的生命周期中,Push/PopLocalFrame是非常方便的。你可以在本地函数的入口处调用PushLocalFrame,然后在出口处调用PopLocalFrame,这样的话,在函数对中间任何位置创建的局部引用都会被释放。而且,这两个函数是非常高效的。

如果你在函数的入口处调用了PushLocalFrame,记住在所有的出口(有return出现的地方)调用PopLocalFrame。

大量的局部引用创建会浪费不必要的内存。一个局部引用会导致它本身和它所指向的对象都得不到回收。尤其要注意那些长时间运行的方法、创建局部引用的循环和工具函数,充分得利用Pus/PopLocalFrame来高效地管理局部引用。

参见: Java Native Interface Specification (Oracle)

Page last updated: 2011-4-12