onDestroyは、呼び出されることが保証されていません。
http://developer.android.com/reference/android/app/Activity.html#onDestroy%28%29
「」
保護されたvoidonDestroy()
APIレベル1で追加アクティビティが破棄される前に、最終的なクリーンアップを実行します。これは、アクティビティが終了しているため(finish()と呼ばれる人がいるため、またはシステムがスペースを節約するためにアクティビティのこのインスタンスを一時的に破棄しているため)に発生する可能性があります。これら2つのシナリオは、isFinishing()メソッドで区別できます。
注:このメソッドがデータを保存する場所として呼び出されることを期待しないでください!たとえば、アクティビティがコンテンツプロバイダーでデータを編集している場合、それらの編集は、ここではなく、onPause()またはonSaveInstanceState(Bundle)のいずれかでコミットする必要があります。このメソッドは通常、アクティビティに関連付けられているスレッドなどのリソースを解放するために実装されます。これにより、破棄されたアクティビティが、アプリケーションの残りの部分がまだ実行されている間、そのようなものを残さないようにします。システムがこのメソッド(または他のメソッド)を呼び出さずにアクティビティのホスティングプロセスを単に強制終了する場合があるため、プロセスが終了した後も存続することを目的としたことを行うために使用しないでください。
派生クラスは、このメソッドのスーパークラスの実装を呼び出す必要があります。そうでない場合は、例外がスローされます。
「」
このスレッドもご覧ください。
アクティビティOnDestroyは呼び出されませんでしたか?