我从静态java块加载带有经典System.loadLibrary()方法的共享库。该库具有静态分配的全局对象:
class Foo
{
public:
Foo()
{
}
~Foo()
{
logtofile( "Foo::~Foo() called" );
}
}
Foo dummy;
全局函数logtofile在sdcard上写入日志文件。在加载库时调用构造函数,在我看来,析构函数永远不会被调用。我希望在两个构造函数之间调用应该有一个析构函数调用。所以问题是:何时调用Foo析构函数?
答案 0 :(得分:1)
Android永远不会卸载本机库;通常,当系统决定它需要资源时,应用程序进程会自发死亡 - 它会相当于kill -9
,从不调用析构函数或Java finalize()
。