在应用程序退出时保存值

时间:2011-12-08 05:25:49

标签: android

我希望在上一个活动中退出应用程序(进程终止)时保存字符串的值,这样当我再次启动该应用程序时,我可以在第一个活动中检索该值。

我尝试了sharedpreferences,但这并没有解决我的问题。这是代码段。

     SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
     Intent int1 = getIntent();
     String pth  = prefs.getString("pathreturned", "true");

在第一个活动中检索。

并将其保存在上一个活动中:

    SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);

    SharedPreferences.Editor e = myPrefs.edit();
    e.putString("pathreturned", path);
    e.commit(); 

3 个答案:

答案 0 :(得分:3)

在上一个活动中,使用与之前使用的代码相同的代码...

而不是

SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);

使用

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

答案 1 :(得分:2)

以下是通过SharedPreferences保存字符串的完整示例

 import android.app.Activity;
 import android.content.SharedPreferences;
 import android.content.SharedPreferences.Editor;
 import android.os.Bundle;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.Button; 
 import android.widget.EditText;
 import android.widget.TextView;

 public class SharedPrefs extends Activity implements OnClickListener{

private EditText dataInput;
private TextView dataView;
private SharedPreferences sharedString;
public static final String myFile = "MySharedDataFile";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.sharedprefs);
    setUpVariables();
    sharedString = getSharedPreferences(myFile, 0);
}

public void setUpVariables(){
    dataInput = (EditText) findViewById(R.id.dataToUse);
    dataView = (TextView) findViewById(R.id.showDataView);

    Button save = (Button) findViewById(R.id.savedataButton);
    Button load = (Button) findViewById(R.id.loadDataButton);
    save.setOnClickListener(this);
    load.setOnClickListener(this);
}

public void onClick(View arg0) {

    switch(arg0.getId()){
    case R.id.savedataButton:
        String dataToSave = dataInput.getText().toString();
        Editor storeData = sharedString.edit();
        storeData.putString("key", dataToSave);
        storeData.commit();
        break;
    case R.id.loadDataButton:
        sharedString = getSharedPreferences(myFile, 0);
        String savedData = sharedString.getString("key", "No data Found");
        dataView.setText(savedData);
        break;
    }

}



 }

答案 2 :(得分:1)

除非您知道哪个活动将是“最后一个”,否则您应该在每个活动结束时保存您的价值。覆盖onStop方法并将其保存在那里。