Загрузка деятельности динамически - PullRequest
0 голосов
/ 13 марта 2011

Есть ли способ загрузить установленное действие, которое явно не определено в моем манифесте приложения?

Ответы [ 3 ]

2 голосов
/ 13 марта 2011

Конечно.Вы можете запустить "галерею", чтобы выбрать фотографию, подобную этой:

myIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);  
startActivityForResult(myIntent, IMAGE_UPLOAD);

из инструкции , мы можем найти 2 типа намерений для вызова:

Явные намерения указали компонент (через setComponent (ComponentName) или setClass (Context, Class)), который предоставляет точный класс для запуска.Часто они не включают никакой другой информации, просто являясь способом для приложения запускать различные внутренние действия, которые он имеет, когда пользователь взаимодействует с приложением.

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

Вы ищете неявные намерения, я полагаю.Это объясняется чуть ниже:

Механизм разрешения намерений в основном вращается вокруг , сопоставляя Намерение со всеми описаниями в установленных пакетах приложений.(Кроме того, в случае широковещательных рассылок любые объекты BroadcastReceiver, явно зарегистрированные в registerReceiver (BroadcastReceiver, IntentFilter).) Более подробную информацию об этом можно найти в документации по классу IntentFilter

(emph. Mine).Поэтому вам нужно либо знать что-то, чтобы вызывать это явно (например, имя класса и т. Д.), Либо вызывать намерение, и тогда вам нужно будет знать фильтр намерений.

Я не думаю, что существует методчтобы вызвать что-то, зная только имя пакета: учтите, у вас может быть приложение с несколькими пакетами, где не у всех есть действия, не говоря уже о действиях, которые можно запустить.

1 голос
/ 13 марта 2011

Как сказала Нанне, вы можете легко начать действие через намерение.

Вот список предоставленных системой намерений: http://developer.android.com/guide/appendix/g-app-intents.html

А вот список намерений, предоставленных 3-мприложения: http://www.openintents.org/en/registry

0 голосов
/ 13 марта 2011

Есть ли способ загрузить установленное действие, которое явно не определено в моем манифесте приложения?

Если вы действительно хотели сказать:

Может ли мое приложение создать класс Activity во время выполнения ... каким-то образом ... и запустить его?

Тогда ответ - нет.

...