残念ながら、私の Android プロジェクトでは内部状態を持つ C ライブラリを使用する必要があります。ライブラリには、状態維持関数init()
とrelease()
. init()
静的メンバーとメンバーを持つラッパー クラスを作成しましたrelease()
。次に、これらのメソッドへの呼び出しをメイン アクティビティOnCreate()
とOnDestroy()
それぞれに追加しました。
そして、それが私が問題を抱えたところです。システムのメモリが少なく、他のアクティビティがフォアグラウンドにある場合、メイン アクティビティが強制終了され、release()
呼び出されます。したがって、ネイティブ ライブラリへの後続の呼び出しはすべて見事に失敗します。
問題は、メイン アクティビティが決して殺されないようにする方法です。または、アクティビティのコールバックで行うよりも、ネイティブ関数を呼び出すためのより良い方法があるでしょうか?