2012-03-20 5 views
3

Я создаю пользовательскую настройку. Предпочтение запоминать, какую деятельность пользователь хочет запустить из списка возможностей. (Эффективное внедрение «всегда запускайте эту деятельность, когда вы видите это намерение» Chooser, но специально запоминаете результат для моего конкретного приложения, а не в общесистемном.)Сохранение намерений Android для Android?

Я получаю список возможных видов деятельности, таких как это:

Intent myIntent = new Intent(); 
    myIntent.setAction(Intent.ACTION_SEND); 
    myIntent.setType("text/plain");  
    myIntent.putExtra(Intent.EXTRA_TEXT, "Probe text"); 

    PackageManager manager = getContext().getPackageManager(); 
    List<ResolveInfo> infoList = manager.queryIntentActivities(myIntent,PackageManager.MATCH_DEFAULT_ONLY); 

... в результате чего в списке ResolveInfo с.

Мой вопрос в том, как только мой пользователь выбрал один из них, какой способ сохранить это как предпочтение? То есть, что я пишу в свои SharedPreferences (в одном элементе, если это возможно), и как, в следующем запуске моего приложения, я прочитал это и сработал соответствующий Intent?

ответ

3

Ну, вы можете позвонить toUri() на Intent, чтобы он превращается в Uri, который затем можно превратить в String через стандартный toString(). Чтобы обратить вспять процесс, разобрать String на Intent, используя Intent.parseUri().

Однако, вам нужно будет добавить в достаточной защите, чтобы иметь дело с различными возможностями, такие как:

  • пользователь удалил приложение
  • пользователя модернизированного приложения, и приложение больше не поддерживает Intent Вы сохранили

Кроме того, будьте осторожны, когда вы вставляете этот зонд (текст). :-)

+0

Спасибо, что работает хорошо. Я буду осторожен с удаленными/измененными приложениями и с моим зондом :) –

Смежные вопросы