user838522
user838522

Reputation: 3991

Saving values at exit of an application

I want to save the value of a string at exit of my application(process kill) in last activity , so that when I start that application again I can retrieve that value in first activity.

I tried the sharedpreferences but that does not solve my problem. Here is the code snippet.

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

to retrieve in the first activity.

and this one to save it in the previous activity:

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

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

Upvotes: 1

Views: 2677

Answers (3)

Harminder
Harminder

Reputation: 2229

Here is a complete Example of Saving Strings Via 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;
    }

}



 }

Upvotes: 2

Yevgeny Simkin
Yevgeny Simkin

Reputation: 28439

Unless you know which Activity is going to be "last" you should save your value at the close of each activity. Override the onStop method and save it there.

Upvotes: 1

st0le
st0le

Reputation: 33575

In your previous Activity, use the same code as the one you used before...

Instead of

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

use

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

Upvotes: 3

Related Questions