10

アプリケーション設定をSharedPreferencesに保存するのに適切な時期はいつかと思いました。onStop、またはの間にそれを行う必要がありonDestroyますか?どちらの方法にも長所と短所があることを私は理解しています。

onStop

ユーザーの意図がアプリケーションを終了しない場合は、アプリケーション設定をSharedPreferencesに保存することは冗長であるように思われます。彼は単にホームを押す(onStopと呼ばれる)->ホームを長押しする->アプリケーションをもう一度選択してアプリケーションを再起動する

onDestroy

ユーザーは、ホームを押す( onStopと呼ばれる)->ホームを長押し->アプリケーションを左にスワイプしてアプリケーションを強制終了することで、アプリケーションを強制終了できます。ユーザーがその方法でアプリケーションを終了すると、アプリが強制終了されても呼び出されていないことに気付きます。したがって、アプリケーション設定は保存されません。onDestroy

それで、またはの間に、アプリケーション設定を保存する方が良いですonStoponDestroy

4

2 に答える 2

17

commit()変更を加えた直後、またはonPause()メソッドで呼び出すのが最適です。これにより、アプリをクラッシュさせるキャッチされていない例外を除いて、ほとんどすべてのシナリオで変更が確実に保存されます。

また、特にAndroidのメモリが不足している状況では、どちらも呼び出されないonStop()か、まったく呼び出されないことが保証されていることに注意してください。onDestroy()ただし、onPause()ほとんどの場合、と呼ばれます。

于 2013-02-07T17:06:01.803 に答える
0

Androidのドキュメントでは、ユーザーからのデータを取得または永続化する必要がある場合について、ほぼ説明していると思います。

onPause()は、アクティビティを離れるユーザーに対処する場所です。最も重要なことは、ユーザーが行った変更はこの時点でコミットする必要があります(通常はデータを保持しているContentProviderに)。

http://developer.android.com/reference/android/app/Activity.html

于 2013-02-07T17:08:28.183 に答える