Waza_Be
Waza_Be

Reputation: 39538

Any workaround to save an Intent in settings?

Hope you will understand my question with my basic english...

In my application, I allow the user to have a button that launch the application of his choice. I get no problem to make a list of all installed apps, get the Intent and launch the choosen app.

But I would like to save the corresponding intent in the settings for the next time the user use my application, but settings only allow me to save basic data type ( Integer, boolean, Strings, etc. )

So, my question is how to save an intent in a smart way.

I hope you can help me to find a solution.

Upvotes: 10

Views: 5186

Answers (2)

anon
anon

Reputation:

Instead of saving the Intent you could just save the String which is necessary to build the Intent.

Example:

Intent intent = new Intent("com.android.notepad.action.EDIT_TITLE");

Now you just store a String containing com.android.notepad.action.EDIT_TITLE

Upvotes: 2

æ-ra-code
æ-ra-code

Reputation: 2350

You should use myIntent.toURI() to store the Intent, and use Intent.getIntent(String uri) to restore the Intent.

public void saveIntent(Intent intent) {
    mSharedPrefs.edit().putString(SOME_KEY, intent.toURI()).commit();
}

public Intent restoreIntent() {
    String uri = mSharedPrefs.getString(SOME_KEY, *mSomeDefaultUri*);
    return Intent.getIntent(uri);
}

Upvotes: 27

Related Questions