1

私は活気に満ちた銀河を持っています。少し前にICS ROMをインストールしました。2.2 で使用していたビデオ キャプチャ プログラムが、ビデオのキャプチャ中に通知なしで突然終了することに気付きました。その後、ICS が多くのメモリを使用することを知りました。

私は現在、サービス インテントを通じてオブジェクトの配列を作成するアプリに取り組んでいます。このサービスはスティッキー サービスです。ですから、私の理解では、それは可能な限り存続します。onDestroy メソッドで、オブジェクトの配列をファイルにシリアライズして、サービスの再起動時に配列が読み込まれるようにします (ファイルが存在する場合)。だから私は自分のアプリをテストし、すべてが正常に動作し、アクティビティを終了します (インテントはまだバックグラウンドで実行されているはずです)。次に、ICS インターネット ブラウザーを実行すると、アプリから強制的に閉じられます。

システムがサービスを強制終了し、ondestroy が呼び出されない可能性はありますか?

4

3 に答える 3

0

アクティビティと同様に、サービスが終了しようとしているときに onDestroy メソッドが呼び出されます。サービスを開始またはバインドしているクライアントがなくなると、Android はサービスを終了します。アクティビティと同様に、Android はメモリが少なくなるとサービスを終了することもあります。その場合、Android はメモリ不足が解消されたときにサービスを再起動しようとします。そのため、サービスがその再起動のために永続的な情報を保存する必要がある場合は、onStart メソッドでこれを行うことをお勧めします。

Could it be because of low ram?

前述したように、ええ。

出典OReilly.Android.Application.Development

于 2012-05-29T07:32:19.660 に答える
-1

サービスのメソッドonLowMemory()を使用します。http://developer.android.com/reference/android/app/Service.html#onLowMemory%28%29

于 2012-08-16T13:32:09.840 に答える
-2

プログラムが閉じられようとしているときは、onDestroy()を呼び出すyourActivity.finish()を呼び出す必要があります。

onDestroyは、Androidシステムでアプリケーションが終了したときに常に呼び出されるとは限りません。

于 2012-05-29T07:29:31.973 に答える