2015-12-30 1 views
1

Я использую LauncherActivity, чтобы динамически решить, какую деятельность я хочу отобразить в списке.Есть ли способ добавить или удалить категорию активности динамически?

@Override 
protected Intent getTargetIntent() { 
    targetIntent.addCategory(xxx_category1);  
    targetIntent.addCategory(xxx_category2); 
    .........  
    targetIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    return targetIntent; 
} 

LauncherActivity использует намерения с конкретными категориями, чтобы отфильтровать эти мероприятия не нужны. Однако эти категории предопределены в xml, и действия должны соответствовать всем категориям (а не «или», но «и всем категориям»), что делает его подходящим для условий, которые делают LauncherActivity меньшей гибкостью.

Итак, я просто задаюсь вопросом, есть ли способ динамически добавлять или удалять категорию деятельности? Спасибо большое!

ответ

0

Активность-псевдоним подходит для удовлетворения необходимости динамического «редактирования». Используя псевдонимы вместо вашей фактической активности, вы можете создавать несколько псевдонимов с несколькими конфигурациями. С псевдонимом для каждой из возможных конфигураций, которые вы хотите предоставить, вы можете включать/отключать псевдонимы по мере необходимости, добавляя/удаляя значки из различных представлений, таких как запуск системы.

активность Алиас

Псевдоним представляет целевую деятельность в качестве независимого органа. Он может иметь свой собственный набор фильтров намерений, и они, а не фильтры намерений для самой целевой деятельности, определяют, какие намерения могут активировать цель через псевдоним и как система обрабатывает псевдоним.

В вашем случае это звучит так, как будто вы хотите использовать псевдоним для каждой из этих категорий, которые вы хотите поразить. Псевдоним должен хорошо работать в этом случае, я считаю. Я также отмечаю динамическую конфигурацию, поскольку я не уверен, что полностью понимаю ваш вопрос, чтобы добавить ясность, если я ее неправильно понял.

http://developer.android.com/guide/topics/manifest/activity-alias-element.html

Редактирование псевдонима

Установите включен параметр для компонента пакета (активность, приемник, обслуживание, поставщик). Этот параметр отменяет любое разрешенное состояние, которое может быть установлено компонентом в его манифесте.

http://developer.android.com/reference/android/content/pm/PackageManager.html#setComponentEnabledSetting(android.content.ComponentName, int, int)

+0

Большое спасибо за вашу помощь! Это полезно !!! – superx3

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