Android
Неявные намерения
Поиск…
Синтаксис
- Намерение ()
- Намерение (намерение o)
- Intent (String action)
- Намерение (String action, Uri uri)
- Intent (Context packageContext, Class <?> Cls)
- Intent (String action, Uri uri, Context packageContext, Class <?> Cls)
параметры
параметры | подробности |
---|---|
о | умысел |
действие | String: действие Intent, такое как ACTION_VIEW. |
URI | Uri: URI данных о намерениях. |
packageContext | Context: контекст пакета приложений, реализующего этот класс. |
ЦБС | Class: класс компонента, который должен использоваться для намерения. |
замечания
Подробнее о намерении
Подробнее о типах намерений
Неявные и явные намерения
Явное намерение используется для запуска активности или службы в одном и том же пакете приложений. В этом случае явно указывается имя предполагаемого класса:
Intent intent = new Intent(this, MyComponent.class);
startActivity(intent);
Тем не менее, неявное намерение отправляется по всей системе для любого приложения, установленного на устройстве пользователя, которое может справиться с этим намерением. Это используется для обмена информацией между различными приложениями.
Intent intent = new Intent("com.stackoverflow.example.VIEW");
//We need to check to see if there is an application installed that can handle this intent
if (getPackageManager().resolveActivity(intent, 0) != null){
startActivity(intent);
}else{
//Handle error
}
Более подробную информацию о различиях можно найти в Android разработчика документации здесь: Намерение Разрешение
Неявные намерения
Неявные намерения не называют конкретный компонент, а вместо этого объявляют общее действие для выполнения, которое позволяет компоненту из другого приложения обрабатывать его.
Например, если вы хотите показать пользователю местоположение на карте, вы можете использовать неявное намерение запросить, чтобы другое способное приложение отображало указанное местоположение на карте.
Пример:
// Create the text message with a string
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");
// Verify that the intent will resolve to an activity
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}