有没有办法调用清理功能,同时清除本机代码,同时在Android中保留任何活动?

时间:2012-04-24 05:25:40

标签: java android c android-activity android-ndk

mainActivity调用了tempActivity

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

1>从tempActivity回到mainActivity或

2 - ;退出整个申请

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

android框架有没有办法处理这种清理功能?

4 个答案:

答案 0 :(得分:3)

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

我的一个项目中有相同的要求。我是按照以下方式做到的。

onStop()onDestroy()内,我进行了本机调用,我已经习惯了free()分配的内存。我认为这是最好和最简单的方法。我不确定android是否提供了一些API,为此。知道这样的事情是否存在将是一种信息。感谢。

答案 1 :(得分:1)

参见here的图表。

enter image description here

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

    每次暂停活动时都会调用
  • onPause:这是您的屏幕锁定,您会转到其他活动
  • 当你去参加其他活动时,
  • onDestroyonStop被召唤。

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

答案 2 :(得分:1)

  1. 要从tempActivity过渡到mainActivity,请在tempActivity的{​​{1}}方法中调用清理功能。
  2. 对于退出整个应用程序的情况:这更加混乱。没有全局函数可以告诉应用程序何时退出,因此您需要使用其他一些跟踪应用程序退出的方法。
  3. 我建议使用设置onDestroy功能的Service使用onStartCommand,然后在START_NOT_STICKY的{​​{1}}方法中调用干净功能。如果你这样做并且你有onDestroy个人使用该服务,那么你可以在那里完成所有工作。

答案 3 :(得分:0)

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