繁体   English   中英

有什么方法可以调用清理函数,该函数还清理本机代码,同时在Android中保留任何活动?

[英]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 :这是屏幕锁定,您转到其他活动
  • 转到其他活动时调用了onDestroyonStop

也许其中一些方法对您有用。

  1. 为了从tempActivity过渡到mainActivity ,请在tempActivityonDestroy方法中调用清除函数。
  2. 对于整个应用程序都退出的情况:这更加混乱。 没有全局函数可以告知应用程序何时退出,因此您需要使用其他一些方式来跟踪应用程序正在退出。

我建议使用ServiceonStartCommand设置为使用功能START_NOT_STICKY然后在onDestroy的方法Service调用清理功能。 如果执行此操作,并且所有Activity使用该服务,则可以在其中完成所有操作。

推荐的技术是在onResume分配所需的内容,并在onPause清理。 这样,您可以在活动将要显示时进行分配,并在活动被某些其他活动部分或完全遮盖时进行清理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM