看
我有mainActivity
哪些电话tempActivity
现在在 tempActivity 我调用一些本机方法并 malloc 一些数据..所以现在当用户
1> 从 tempActivity 回到 mainActivity 或
2> 退出整个应用程序
我需要调用一个清理函数来释放本机方法中的所有数据 malloc,那么我该如何实现这些事情呢?
android框架有什么方法可以处理这种清理功能吗?
看
我有mainActivity
哪些电话tempActivity
现在在 tempActivity 我调用一些本机方法并 malloc 一些数据..所以现在当用户
1> 从 tempActivity 回到 mainActivity 或
2> 退出整个应用程序
我需要调用一个清理函数来释放本机方法中的所有数据 malloc,那么我该如何实现这些事情呢?
android框架有什么方法可以处理这种清理功能吗?
好的,我认为问题是关于如何释放正在使用malloc()
本机代码内部分配的内存。
我在我的一个项目中有同样的要求。我是通过以下方式做到的。
在onStop()
or里面onDestroy()
,我做了一个本地调用,我已经习惯free()
了分配的内存。我认为这是最好和最简单的方法。我不确定android是否为此提供了一些API。知道这样的事情是否存在将是有益的。谢谢。
请参阅从此处获取的图表。
基本上,Activity
该类定义了几种对您有用的方法:
onPause
每次您的活动暂停时都会调用它:即您的屏幕锁定,您转到其他活动onDestroy
并onStop
在您进行其他活动时调用。也许其中一些方法对您有用。
tempActivity
到的转换,请在'方法mainActivity
中调用清理函数。tempActivity
onDestroy
我建议使用设置要使用Service
的onStartCommand
函数START_NOT_STICKY
,然后在调用清理函数的onDestroy
方法中使用。Service
如果您这样做并且所有人都Activity
使用该服务,那么您可以在那里完成所有操作。
推荐的技术是分配您需要的任何内容onResume
并在onPause
. 通过这种方式,您可以在您的活动即将显示时进行分配,并在您的活动部分或完全被其他活动遮挡时进行清理。