2

我正在使用 AsyncTask 类来进行一些耗时的后台处理。我用自己的实现扩展了 AsyncTask 类。当doInBackground()方法被调用时,它会调用一个原生的 C 函数(这个函数会做一些虚拟的耗时处理并返回一个字符串)。此功能将运行 10 秒。为了便于调试,本机函数的每一项工作都将使用 LOGI() 宏在 Eclipse 控制台上输出一条消息。如果用户在本机方法完成计算之前按下按钮,我调用 AsyncTask 方法cancel(true),但本机函数运行到最后。我认为原因是因为本机函数驻留在另一个进程(相对于我的 Activity 加载的共享库的进程)。第一个问题是:执行native方法的return语句时会发生什么?字符串将返回给谁?第二个问题是关于如何安全地停止本机函数(它分配内存,所以我想停止它的执行并释放使用的内存)。

4

0 回答 0