[英]Is there any way to call clean up function that also cleans the native code while leaving any activity in Android?
看到
我有mainActivity
,它调用tempActivity
现在在tempActivity内部,我调用一些本机方法并分配一些数据..所以现在当用户
1>从tempActivity返回到mainActivity或
2>从整个应用程序退出
我需要调用一个清理函数来释放本机方法中的所有数据malloc,所以我该如何实现这些东西?
android框架是否有任何方法可以处理此类清理功能?
好的,我认为问题在于如何释放在本机代码中使用malloc()
分配的malloc()
。
在我的一个项目中,我有相同的要求。 我以以下方式做到了。
在onStop()
或onDestroy()
,我进行了本机调用,该调用已用于free()
分配的内存。 我认为这是最好,最简单的方法。 我不确定android是否为此提供了一些API。 知道是否存在类似信息将很有帮助。 谢谢。
请参阅此处的图表。
基本上, Activity
类定义了几种可能对您有用的方法:
onPause
:这是屏幕锁定,您转到其他活动 onDestroy
和onStop
。 也许其中一些方法对您有用。
tempActivity
过渡到mainActivity
,请在tempActivity
的onDestroy
方法中调用清除函数。 我建议使用Service
与onStartCommand
设置为使用功能START_NOT_STICKY
然后在onDestroy
的方法Service
调用清理功能。 如果执行此操作,并且所有Activity
使用该服务,则可以在其中完成所有操作。
推荐的技术是在onResume
分配所需的内容,并在onPause
清理。 这样,您可以在活动将要显示时进行分配,并在活动被某些其他活动部分或完全遮盖时进行清理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.