Любой обходной путь для сохранения намерения в настройках? - PullRequest
9 голосов
/ 11 мая 2010

Надеюсь, вы поймете мой вопрос с моим базовым английским ...

В моем приложении я позволяю пользователю иметь кнопку, которая запускает приложение по его выбору. У меня нет проблем, чтобы составить список всех установленных приложений, получить Intent и запустить выбранное приложение.

Но я бы хотел сохранить соответствующее намерение в настройках для следующего использования пользователем моего приложения, но настройки позволяют мне сохранять только базовый тип данных (целочисленные, логические, строки и т. Д.)

Итак, мой вопрос: как правильно сохранить намерение?

Надеюсь, вы поможете мне найти решение.

Ответы [ 2 ]

25 голосов
/ 14 февраля 2011

Вы должны использовать myIntent.toURI() для хранения Intent и Intent.getIntent(String uri) для восстановления 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);
}
2 голосов
/ 11 мая 2010

Вместо сохранения Intent вы можете просто сохранить String, необходимый для построения Intent.

Пример:

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

Теперь вы просто храните String, содержащий com.android.notepad.action.EDIT_TITLE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...