onCreate(Bundle savedInstanceState,P e r sistableBundle persistentState)について

1779 ワード

API 21は、Activityに新たな属性を追加し、persistAcrossRebootsに設定すれば、activityは永続化する能力があり、また、新しいbundleを組み合わせる必要がある.それがPersistableBundleである. 
onCreate(Bundle savedInstanceState, PersistableBundle persistentState)
Same as  onCreate(android.os.Bundle)  but called for those activities created with the attribute  persistableMode  set to  persistAcrossReboots .
ここでの永続化は従来の意味とは異なり,ActivityでリロードされたonSaveInstanceState,onRestoreInstanceState,onCreate法を具体的に実現する.
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState)

public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState) public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState)

onSaveInstanceStateおよびonRestoreInstanceStateメソッドは、「通常」のActivityライフサイクルではなく、縦横画面切り替え、ホームキーの押しなど、突発的な異常のみがトリガーされます.API 21の後にPersistableBundleパラメータが追加され、システムのシャットダウン再起動後にデータがリカバリされます.
マニフェストのactivityでプロパティを設定するだけです.
android:persistableMode="persistAcrossReboots"

そしてactivityでは上記の3つの方法をそのまま使えばよい.なお、APIバージョンは21以上であることに注意.
 
参考資料:http://developer.android.com/reference/android/app/Activity.html
Android実戦テクニック26:persistableModeとActivityの持続化
onCreate(Bundle savedInstanceState,P e r sistableBundle persistentState)について
転載先:https://www.cnblogs.com/droi/p/5487869.html