0

アクティビティが初めて起動されたときに、ダイアログを表示する必要があります。だから私は私の中でそれをします

public void onCreate(Bundle savedInstanceState)

と使用

protected void onSaveInstanceState (Bundle outState) 

打ち上げの時間を節約するために。OS が古いものを使用する代わりに、新しい「Bundle outState」を作成することに気付きました。また、Oncreate を再作成した日付をデバッグすることはできません。

私の質問:

  1. onSaveInstanceState に保存した日付は、本当に Oncreate で読み取れるのでしょうか? そして、どのようにデバッグするのですか?

  2. プロセスがOSによって強制終了されたときにOSによって削除されることなく、状態を保存するためにプライベートメンバーの変化を使用することはできますか。

ご協力ありがとうございました。

4

1 に答える 1

0

Bundleアプリケーションの再起動後にデータを運ぶために使用することはできません。

のように、データをより永続的なストレージに保存することをお勧めします。次のSharedPreferencesコードを に入れますonCreate()

SharedPreferences prefs;
prefs = getSharedPreferences( "preferences", Context.MODE_PRIVATE);
long last_run_time = prefs.getLong( 'last_run', 0 );
if( last_run_time == 0 ) { // zero means your app has never been run
    // display dialog, this is the first time!
    ....
    // this saves current system time to prevent your dialog being seen again
    prefs.edit().putLong( 'last_run', system.currentTimeMillis() ).commit();
}
于 2012-04-23T07:45:03.313 に答える