如题,就是怎样在程序终止的时候,保存某些对象的状态,以便需要的时候回复?是使用 SharedPreferences 吗?或者也可以使用 java 的 Serializable 等几个接口?还有就是 android 如果需要操作文件的话是否是 使用 java 的 File 类?

解决方案 »

  1.   

    两种保存状态的方法getSharedPreferences和onSaveInstanceState 
    http://wang-peng1.iteye.com/blog/615339
    @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)); 
        } 
    } 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"); 

      

  2.   

    用SharedPreferences合适,
    存储状态:
        SharedPreferences sharedPreferences = getSharedPreferences("这是提取时需要的关键值", MODE_PRIVATE); 
        Editor editor = sharedPreferences.edit(); 
        editor.putString("这是提取时需要的关键值", 这是存储的值); 
        editor.commit(); 
    获取状态:
        SharedPreferences sharedPreferences = getSharedPreferences("这是提取时需要的关键值", MODE_PRIVATE); 
        String str=sharedPreferences.getString("关键值","默认值");
      

  3.   

    为什么不存入sqlite。存入数据库状态不好么?
      

  4.   

    SharedPreferences 仅保存常规类型,保存二进制东西,还是上 Serializable