【发布时间】:2013-01-07 14:39:44
【问题描述】:
背景
我有一个简短而繁重的任务,它使用 NDK (JNI) 来进行一些位图操作。
在某些情况下,我需要取消任务并去做其他事情。
但是,由于任务也占用了大量内存,并且最终还会创建一个大的位图,这可能会导致内存不足的错误。
问题
我应该如何取消包含本机代码的任务?有这方面的最佳做法吗?
也许是某种我可以用于 C/C++ 的中断异常,这样一旦它被捕获,我至少可以释放所有内存?
也许我应该在本机代码中添加某种侦听器(观察者)?或者我应该调用一个我需要假设调用者拥有的方法?
【问题讨论】:
标签: android android-ndk android-asynctask java-native-interface cancellation