2

我有mainActivity哪些电话tempActivity

现在在 tempActivity 我调用一些本机方法并 malloc 一些数据..所以现在当用户

1> 从 tempActivity 回到 mainActivity 或

2> 退出整个应用程序

我需要调用一个清理函数来释放本机方法中的所有数据 malloc,那么我该如何实现这些事情呢?

android框架有什么方法可以处理这种清理功能吗?

4

4 回答 4

3

好的,我认为问题是关于如何释放正在使用malloc()本机代码内部分配的内存。

我在我的一个项目中有同样的要求。我是通过以下方式做到的。

onStop()or里面onDestroy(),我做了一个本地调用,我已经习惯free()了分配的内存。我认为这是最好和最简单的方法。我不确定android是否为此提供了一些API。知道这样的事情是否存在将是有益的。谢谢。

于 2012-04-24T05:50:17.963 回答
1

请参阅从此处获取的图表。

在此处输入图像描述

基本上,Activity该类定义了几种对您有用的方法:

  • onPause每次您的活动暂停时都会调用它:即您的屏幕锁定,您转到其他活动
  • onDestroyonStop在您进行其他活动时调用。

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

于 2012-04-24T05:41:48.890 回答
1
  1. 对于从tempActivity到的转换,请在'方法mainActivity中调用清理函数。tempActivityonDestroy
  2. 对于退出整个应用程序的情况:那就更混乱了。没有全局函数可以告诉应用程序何时退出,因此您需要使用其他一些方法来跟踪应用程序正在退出。

我建议使用设置要使用ServiceonStartCommand函数START_NOT_STICKY,然后在调用清理函数的onDestroy方法中使用。Service如果您这样做并且所有人都Activity使用该服务,那么您可以在那里完成所有操作。

于 2012-04-24T05:42:10.623 回答
0

推荐的技术是分配您需要的任何内容onResume并在onPause. 通过这种方式,您可以在您的活动即将显示时进行分配,并在您的活动部分或完全被其他活动遮挡时进行清理。

于 2012-04-24T05:40:33.243 回答