Activityはシステムによって殺され、データの記憶と回復
1562 ワード
1、データの保存方法:onSaveInstanceState(Bundle outState)
トリガ条件:Activityはfinishを実行していません.例えば、homeキー、電源キー、回転Activity、メモリ不足などです.このデータの保存はすべて一時的です.永続的なデータを保存するにはonPauseを使用します.
2、データの回復方法:onRestoreInstanceState(BundlesavedInstanceState)
トリガ条件:onSaveInstanceStateがトリガされ、Activityがシステムによって回収された後、再び開きます.
3、データの復元方法:Create(Bundle savedInstanceState)
トリガー条件:Activityインスタンスを作成する場合
4、次はActivityで、実践してみましょう.
HOMEキーを押して、onSaveInstanceStateをトリガし、プログラムはバックグラウンドに戻り、システムがActivityを回収し、再び開き、onRestoreInstanceStateをトリガします.
注意:Activityを迅速にシステムに回収させたい場合は、携帯電話の設定を開き、開発者のオプションを開き、保留しない活動を開きます.
これにより,ユーザがホームキーを押すと,Activityが回収される.
5、同理Fragmentの中
データを復元する方法名が変わっただけです.
もう一度言って、一時的なデータを保存するのに適しているだけで、持続的なデータを保存することはできません.そうしないと、データが失われ、システムに回収される可能性があります.
トリガ条件:Activityはfinishを実行していません.例えば、homeキー、電源キー、回転Activity、メモリ不足などです.このデータの保存はすべて一時的です.永続的なデータを保存するにはonPauseを使用します.
2、データの回復方法:onRestoreInstanceState(BundlesavedInstanceState)
トリガ条件:onSaveInstanceStateがトリガされ、Activityがシステムによって回収された後、再び開きます.
3、データの復元方法:Create(Bundle savedInstanceState)
トリガー条件:Activityインスタンスを作成する場合
4、次はActivityで、実践してみましょう.
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("test","test ");
Log.e(" :","test ");
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
String test = savedInstanceState.getString("test");
Log.e(" :",test);
}
HOMEキーを押して、onSaveInstanceStateをトリガし、プログラムはバックグラウンドに戻り、システムがActivityを回収し、再び開き、onRestoreInstanceStateをトリガします.
注意:Activityを迅速にシステムに回収させたい場合は、携帯電話の設定を開き、開発者のオプションを開き、保留しない活動を開きます.
これにより,ユーザがホームキーを押すと,Activityが回収される.
5、同理Fragmentの中
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
super.onViewStateRestored(savedInstanceState);
}
データを復元する方法名が変わっただけです.
もう一度言って、一時的なデータを保存するのに適しているだけで、持続的なデータを保存することはできません.そうしないと、データが失われ、システムに回収される可能性があります.