如何重新启动一个Activity来重新加载一个静态库?

时间:2012-04-10 10:30:32

标签: android c android-ndk

我需要重新启动一个活动来重新加载静态库。如果我想调用同一个静态库的某些函数,我的系统会失败。它只能在第一次调用后才能找到正确的符号,并在下一个错误时失败:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000100

如果我终止进程并再次启动活动,则会再次加载静态库,从此刻起,我可以调用第二个函数,但如果我想调用库的另一个第三个函数,我必须重复相同的过程杀死进程并启动活动。

要终止活动过程,我使用下一个命令:

android.os.Process.killProcess(android.os.Process.myPid());

我杀死和发布作品的方法但它没用,我认为它必须存在更好的解决方案。也许我应该每次在活动中删除并加载静态库,但我不知道它是否可行,我有点迷失。

1 个答案:

答案 0 :(得分:1)

每个活动都有自己独特的process id,因此我建议您参加一个涉及您图书馆的临时活动。

现在,您的主要活动将调用startActivityForResult(temporaryact)和临时调用android.os.Process.killProcess(android.os.Process.myPid());的onDestroy()

然后在主要活动onAcitivityResult()再次调用临时活动,依此类推。

这对我有用,也许你也不用它了。