バックグラウンド
ビットマップ操作を行うために NDK (JNI) を使用する、短いながらも重いタスクがあります。
場合によっては、タスクをキャンセルして他の作業に取り掛かる必要があります。
ただし、タスクも大量のメモリを使用し、最終的には大きなビットマップも作成するため、メモリ不足エラーが発生する可能性があります。
質問
ネイティブ コードを含むタスクをキャンセルするにはどうすればよいですか? これに対するベストプラクティスはありますか?
C/C++ で使用できるある種の中断された例外で、それがキャッチされるとすぐに、少なくともすべてのメモリを解放できるでしょうか?
ネイティブ コードにある種のリスナー (オブザーバー) を追加する必要があるのではないでしょうか? それとも、呼び出し元が持っていると想定する必要があるメソッドを呼び出す必要がありますか?