Java 有没有办法调用cleanup函数来清除本机代码,同时在Android中保留任何活动?
看 我有Java 有没有办法调用cleanup函数来清除本机代码,同时在Android中保留任何活动?,java,android,c,android-activity,android-ndk,Java,Android,C,Android Activity,Android Ndk,看 我有mainActivity调用tempActivity 现在在tempActivity中,我调用一些本机方法和malloc一些数据。。那么现在当用户 1> 从临时活动返回到主活动或 2> 退出整个应用程序 我需要调用一个清理函数来释放本机方法中的所有数据malloc,那么我如何实现这些事情呢 android框架是否有任何方法来处理此类清理功能?推荐的方法是在onResume中分配您需要的任何内容,并在onPause中进行清理。这样,您可以在活动即将显示时进行分配,并在活动被其他活动部分或完
mainActivity
调用tempActivity
现在在tempActivity中,我调用一些本机方法和malloc一些数据。。那么现在当用户
1> 从临时活动返回到主活动或
2> 退出整个应用程序
我需要调用一个清理函数来释放本机方法中的所有数据malloc,那么我如何实现这些事情呢
android框架是否有任何方法来处理此类清理功能?推荐的方法是在
onResume
中分配您需要的任何内容,并在onPause
中进行清理。这样,您可以在活动即将显示时进行分配,并在活动被其他活动部分或完全遮挡时进行清理 参见摘自的图表
基本上,活动
类定义了几种对您有用的方法:
每次暂停活动时都会调用它:即屏幕锁定,您转到其他活动onPause
- 当您转到其他活动时,将调用onDestroy和onStop
tempActivity
到mainActivity
的转换,在tempActivity
的ondestory
方法中调用clean-up函数我建议使用
服务
,并将onstart命令
功能设置为使用START\u NOT\u STICKY
,然后在服务
的ondestory方法中调用清理功能。如果您这样做,并且您有所有的活动
s使用该服务,那么您可以在那里完成所有工作。好的,我认为问题在于如何在本机代码中释放使用malloc()
分配的内存
我在我的一个项目中也有同样的要求。我是用下面的方法做的
在onStop()
或onDestroy()
中,我执行了一个本机调用,用于free()
分配的内存。我认为这是最好最简单的方法。我不确定android是否为此提供了一些API。知道这样的事情是否存在是非正式的。谢谢。这两个项不能正确地映射在一起。我的意思是,onResume
可以在onPause
之后调用,而无需经过onStop
,从而使您在不释放资源的情况下分配两次。也许你需要在回答中纠正这个问题。