读书人

两种封存状态的方法getSharedPreferen

发布时间: 2012-09-25 09:55:59 作者: rapoo

两种保存状态的方法getSharedPreferences和onSaveInstanceState

虽然这些东西很简单有时候还真的让你搞混

@Override?
protected void onPause() {?
? ? super.onPause();?
?
? ? SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);?
? ? Editor editor = prefs.edit();?
? ? editor.putString("lastActivity", getClass().getName());?
? ? editor.commit();?
}?
public class Dispatcher extends Activity {?
?
? ? @Override?
? ? protected void onCreate(Bundle savedInstanceState) {?
? ? ? ? super.onCreate(savedInstanceState);?
?
? ? ? ? Class<?> activityClass;?
?
? ? ? ? try {?
? ? ? ? ? ? SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);?
? ? ? ? ? ? activityClass = Class.forName(?
? ? ? ? ? ? ? ? prefs.getString("lastActivity", Activity1.class.getName()));?
? ? ? ? } catch(ClassNotFoundException ex) {?
? ? ? ? ? ? activityClass = Activity1.class;?
? ? ? ? }?
?
? ? ? ? startActivity(new Intent(this, activityClass));?
? ? }?
}?
上面的方法通常保存一个activity以便下次发动

2.

@Override?
public void onSaveInstanceState(Bundle savedInstanceState) {?
? // Save UI state changes to the savedInstanceState.?
? // This bundle will be passed to onCreate if the process is?
? // killed and restarted.?
? savedInstanceState.putBoolean("MyBoolean", true);?
? savedInstanceState.putDouble("myDouble", 1.9);?
? savedInstanceState.putInt("MyInt", 1);?
? savedInstanceState.putString("MyString", "Welcome back to Android");?
? // etc.?
? super.onSaveInstanceState(savedInstanceState);?
}?
@Override?
public void onRestoreInstanceState(Bundle savedInstanceState) {?
? super.onRestoreInstanceState(savedInstanceState);?
? // Restore UI state from the savedInstanceState.?
? // This bundle has also been passed to onCreate.?
? boolean myBoolean = savedInstanceState.getBoolean("MyBoolean");?
? double myDouble = savedInstanceState.getDouble("myDouble");?
? int myInt = savedInstanceState.getInt("MyInt");?
? String myString = savedInstanceState.getString("MyString");?
}?

这个上次已经记过了用来旋转保存状态最好

读书人网 >移动开发

热点推荐