我的onsaveInstanceState()不起作用

时间:2015-01-22 02:31:57

标签: android

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
if( savedInstanceState != null ) {
         Toast.makeText(this, "!=nulll" + savedInstanceState .getString("MyString"), Toast.LENGTH_LONG).show();
      } else Toast.makeText(this, "=nulll", Toast.LENGTH_LONG).show();    

...我在这里得到了一些带有变量的代码:String set ....

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);    
      savedInstanceState.putString("MyString", set);
  }    

尝试过,它总是显示:“= nulll”。

1 个答案:

答案 0 :(得分:0)

如果要保存简单的键值对,则可以使用sharedPreferences。查看Saving Data guide以了解更多详细信息以及如何保存复杂数据。

以下是共享偏好示例(借鉴saving key value set

//Restore it in onResmue()
@Override
protected void onResume() {
    super.onResume();
    SharedPreferences pref = getPreferences(Context.MODE_PRIVATE);
    String myString = pref.contains("MyString") ? pref.getString("MyString", null) : null;
    if( myString != null ) {
        Toast.makeText(this, "!=nulll" + myString, Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(this, "=nulll", Toast.LENGTH_LONG).show(); }
}

//Save it in onPause()
@Override
protected void onPause() {
    super.onPause();
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putString("MyString", set);
    editor.commit();

}

使用File或Sqlite时要小心,您需要在单独的线程上读回数据。再次,请查看Saving Data guide以获取更多信息。