android Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ intent

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список

— разбираСмся Π² ΠΊΠΎΠ΄Π΅ ΡƒΡ€ΠΎΠΊΠ° 21
— тСория ΠΏΠΎ Intent ΠΈ Intent Filter
— Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ Context

На ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ (β„– 21) ΠΌΡ‹ создали ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит Π΄Π²Π° Activity. Напомню, Ρ‡Ρ‚ΠΎ для создания Activity, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:
ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс, с супСрклассом android.app.Activity
ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Activity-запись Π² манифСстС ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅ΠΉ созданный класс Π² ΠΏΠΎΠ»Π΅ Name

НадСюсь ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ Π½Π΅ Π²Ρ‹Π·Π²Π°Π» особых трудностСй ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° создания Activity ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡƒΠ»ΠΎΠΆΠΈΠ»Π°ΡΡŒ Π² Π³ΠΎΠ»ΠΎΠ²Π΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π²Ρ‹Π·ΠΎΠ²Π° Activity.

ΠœΡ‹ использовали ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Intent. О Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь, здСсь ΠΈ здСсь. ΠŸΡ€Π°Π²Π΄Π° ΠΈΠ½Ρ„Π° достаточно слоТна для понимания с нуля. Π― ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ своими словами ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Intent

Π’ нашСм случаС Intent – это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ прописываСм, ΠΊΠ°ΠΊΠΎΠ΅ Activity Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ. ПослС Ρ‡Π΅Π³ΠΎ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ этот Intent-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ startActivity, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Activity ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ. ΠŸΡ€ΠΈ создании Intent ΠΌΡ‹ использовали конструктор Intent (Context packageContext, Class cls) с двумя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ – это Context. Если ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ создавали View Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… ΡƒΡ€ΠΎΠΊΠΎΠ², ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ использовали Π² конструкторах ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Context. Activity являСтся подклассом Context, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ – this. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅, Context – это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт доступ ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ функциям прилоТСния Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ: доступ ΠΊ рСсурсам, ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, Π²Ρ‹Π·ΠΎΠ² Activiy ΠΈ Ρ‚.Π΄. Π― Π΄ΡƒΠΌΠ°ΡŽ, Π² дальнСйшСм ΠΌΡ‹ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Π³Π΄Π΅ явно ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Π·Π°Ρ‡Π΅ΠΌ Context пСрСдаСтся ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ – имя класса. Напомню, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ создании записи Activity Π² манифСст-Ρ„Π°ΠΉΠ»Π΅ ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ имя класса. И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ссли ΠΌΡ‹ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ класс Π² Intent – Ρ‚ΠΎ систСма, просмотрСв манифСст-Ρ„Π°ΠΉΠ» ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ соотвСтствиС ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Activity.

Π’ этом ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ. ΠœΡ‹ ΡƒΠ΄Π°Π»ΠΈΠΌ запись ΠΎΠ± Activity ΠΈΠ· манифСст-Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π΅Π³ΠΎ послС этого Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ· ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠΊΠ° P0211_TwoActivity, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ манифСст-Ρ„Π°ΠΉΠ», Π²ΠΊΠ»Π°Π΄ΠΊΠ° Application ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ запись ΠΎΠ± ActivityTwo с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Remove. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ всС, запуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Activity ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ β€œGo to Activity Two”. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ. Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ, Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст:

ERROR/AndroidRuntime(367): android.content.ActivityNotFoundException: Unable to find explicit activity class ; have you declared this activity in your AndroidManifest.xml?

БистСма Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ нашла Ρ‚Π°ΠΊΠΎΠ³ΠΎ Activity класса ΠΈ любСзно подсказываСт, Ρ‡Ρ‚ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ Π½Π΅ прописан Π² манифСст-Ρ„Π°ΠΉΠ»Π΅. Π‘Π½ΠΎΠ²Π° ΠΏΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ Activity Π² манифСст-Ρ„Π°ΠΉΠ»Π΅, всС сохранитС ΠΈ запускайтС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π―Π²Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ²

Π’Ρ‹Π·ΠΎΠ² Activity с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Intent – это явный Π²Ρ‹Π·ΠΎΠ². Π’.Π΅. с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса ΠΌΡ‹ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠ°ΠΊΠΎΠ΅ Activity Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния. Π‘Ρ…Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

android Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ intent. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ android Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ intent. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ android Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ intent. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ android Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ intent. Π€ΠΎΡ‚ΠΎ android Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ intent

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создаСм Intent, Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΅ΠΌΡƒ класс Class_B. Π”Π°Π»Π΅Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ startActivity с созданным Intent Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠœΠ΅Ρ‚ΠΎΠ΄ провСряСт AndroidManifest Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Activity связанной с классом Class_B ΠΈ Ссли Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚, Ρ‚ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚. ВсС это Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния.

НСявный Π²Ρ‹Π·ΠΎΠ²

android Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ intent. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ android Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ intent. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ android Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ intent. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ android Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ intent. Π€ΠΎΡ‚ΠΎ android Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ intent

Π’ Application_1 создаСтся Intent, Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ action, data, category. Для удобства, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π°Π·ΠΎΠ²Π΅ΠΌ Param_C. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ startActivity этот Intent отправляСтся Π½Π° поиски подходящСй Activity, которая смоТСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ (Ρ‚.Π΅. Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Param_C). Π’ систСмС Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ прилоТСния, ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… нСсколько Activity. Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Activity ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Intent Filter (Π½Π°Π±ΠΎΡ€Ρ‹ Param_A, Param_B ΠΈ Ρ‚.Π΄.), для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚. ΠœΠ΅Ρ‚ΠΎΠ΄ startActivity свСряСт Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Intent ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Intent Filter для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Activity. Если Π½Π°Π±ΠΎΡ€Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ (Param_C для ΠΎΠ±ΠΎΠΈΡ…), Ρ‚ΠΎ Activity считаСтся подходящСй.

Если Π² ΠΈΡ‚ΠΎΠ³Π΅ нашлась Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Activity – ΠΎΠ½Π° ΠΈ отобраТаСтся. Если ΠΆΠ΅ нашлось нСсколько подходящих Activity, Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ выводится список, Π³Π΄Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ сам Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

НапримСр, Ссли Π² систСмС установлСно нСсколько ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π΅Π΅Ρ€ΠΎΠ², ΠΈ Π²Ρ‹ запускаСтС mp3, Ρ‚ΠΎ систСма Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π²Π°ΠΌ список Activity, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΌΠ΅ΡŽΡ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΌΡƒΠ·Ρ‹ΠΊΡƒ ΠΈ попросит Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. А Ρ‚Π΅ Activity, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΌΠ΅ΡŽΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ‚ΡŒ тСкст, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Π·Π²ΠΎΠ½ΠΈΡ‚ΡŒ ΠΈ Ρ‚.ΠΏ. Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

Если для Activity Π½Π΅ Π·Π°Π΄Π°Π½ Intent Filter (Activity_24 Π½Π° схСмС), Ρ‚ΠΎ Intent с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π΅ΠΌΡƒ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚, ΠΈ ΠΎΠ½ΠΎ Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ.

Ну Π²ΠΎΡ‚, Ρ…ΠΎΡ‚Π΅Π» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Π²Π²ΠΎΠ΄Π½Ρ‹Ρ… слов, Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ достаточно ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС со схСмами ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ) НадСюсь, Ρ‡Ρ‚ΠΎ Ρƒ мСня ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ донСсти смысл Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Intent-ΠΎΠ². Π’ дальнСйшСм Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΠΌ Ρ‚Π΅ΠΌΡƒ.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅:

— Activity LifeCycle – ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Activity ΠΏΡ€ΠΈ создании, Π²Ρ‹Π·ΠΎΠ²Π΅, Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ Π½Π°ΠΌ Π² Telegram:

— Π² ΠΊΠ°Π½Π°Π»Π΅ StartAndroid ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ΡΡ ссылки Π½Π° Π½ΠΎΠ²Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ с сайта startandroid.ru ΠΈ интСрСсныС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ с Ρ…Π°Π±Ρ€Π°, medium.com ΠΈ Ρ‚.ΠΏ.

— Π² Ρ‡Π°Ρ‚Π°Ρ… Ρ€Π΅ΡˆΠ°Π΅ΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ вопросы ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ‚Π΅ΠΌΠ°ΠΌ: Android, Kotlin, RxJava, Dagger, ВСстированиС

— Π½Ρƒ ΠΈ Ссли просто хочСтся ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Π°Ρ‚ Π€Π»ΡƒΠ΄ΠΈΠ»ΡŒΠ½Ρ

— Π½ΠΎΠ²Ρ‹ΠΉ Ρ‡Π°Ρ‚ Performance для обсуТдСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ для Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΠΉ ΠΏΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ курса ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Intent (НамСрСниС)

ΠžΠ±Ρ‰Π΅Π΅

Но это Π½Π΅ СдинствСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования намСрСния. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для объявлСния ΠΎ запускС активности ΠΈΠ»ΠΈ сСрвиса, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ дСйствий (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π΅Ρ‡ΡŒ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈΠ»ΠΈ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π½Π΅ΠΊΠΎΠ΅ событиС (ΠΈΠ»ΠΈ дСйствиС).

НамСрСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для трансляции сообщСний ΠΏΠΎ систСмС. Π›ΡŽΠ±ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ способно Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ эти намСрСния с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π½Π° Π½ΠΈΡ… Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΉΠ½ΡƒΡŽ модСль, Π² основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π»Π΅ΠΆΠ°Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅, систСмныС ΠΈΠ»ΠΈ сторонниС события, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ внСшними ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ.

Android транслируСт намСрСния для объявлСния ΠΎ систСмных событиях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ± измСнСниях Π² состоянии сСтСвого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π² ΡƒΡ€ΠΎΠ²Π½Π΅ заряда Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ. БистСмныС прилоТСния Π² Android, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ·Π²ΠΎΠ½Π° ΠΈΠ»ΠΈ управлСния SMS, Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ намСрСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ входящий Π·Π²ΠΎΠ½ΠΎΠΊ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ SMS-сообщСниС, ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° Π½ΠΈΡ….

Π―Π²Π½Ρ‹Π΅ намСрСния

Вспомним ΠΊΠΎΠ΄ для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π² своём ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:

Π’ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ ΠΌΡ‹ явно ΡƒΠΊΠ°Π·Π°Π»ΠΈ имя класса активности Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅. Π”Π°Π½Π½Ρ‹ΠΉ класс Ρƒ нас прописан Π² манифСстС, ΠΈ систСма, просматривая манифСст, запустит Π½ΡƒΠΆΠ½ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρƒ нас сначала ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π»Π°ΡΡŒ с ошибкой. Когда ΠΌΡ‹ создали класс, Π½ΠΎ Π½Π΅ прописали Π΅Π³ΠΎ Π² манифСстС, Ρ‚ΠΎ систСма Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»Π°, Ρ‡Π΅Π³ΠΎ ΠΎΡ‚ Π½Π΅Ρ‘ хотят.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ – это Context. ΠΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ являСтся подклассом Context, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΊΠ°ΠΊ HelloWorld.this, ΠΈΠ»ΠΈ ΡƒΠΊΠΎΡ€ΠΎΡ‡Π΅Π½Π½ΡƒΡŽ запись this.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅ΡΡΡ‚ΡŒ активностСй, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ…, зная Π΅Ρ‘ имя класса. Π­Ρ‚ΠΎ явный Π²Ρ‹Π·ΠΎΠ², Π³Π΄Π΅ Π²Ρ‹ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ имя класса для запуска.

ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° создастся новая Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, которая запустится ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΠ²ΡˆΠΈΡΡŒ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка активностСй.

Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡ…. Для этих Ρ†Π΅Π»Π΅ΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚ΠΈΠΏΠ° putXXX(). НапримСр, для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ списка Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ активности Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ:

По ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΌΡƒ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ простыС Ρ‚ΠΈΠΏΡ‹ ΠΈ строки.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с дСйствиями, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹Π΅, нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ startActivity(), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ startActivityForResult(), приспособлСнный для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ.

НСявныС намСрСния

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ нСявный Π²Ρ‹Π·ΠΎΠ² активности. Π’ этом случаС ΠΏΡ€ΠΈ создании намСрСния ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π½Π΅ имя класса, Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ action, data, category с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ значСниями. БистСма Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚ΡƒΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ понаписали ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Ρ‚ΡŒ подходящий Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для запуска. НапримСр, Ссли ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… адрСс Π²Π΅Π±-страницы, Ρ‚ΠΎ скорСС всСго Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠšΠΎΡ‚ Π›Π°Ρ€Ρ€ΠΈ ΡƒΠ²ΠΎΠ»Π΅Π½ с поста «Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΌΡ‹ΡˆΠ΅Π»ΠΎΠ²Π°» Ρ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΈ британского ΠΏΡ€Π΅ΠΌΡŒΠ΅Ρ€Π° (Π½Π΅Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€Π΅ΠΌΡŒΠ΅Ρ€-министр, ΠΏΡƒΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠœΠΎΡΠΊΠ²Ρƒ сунСтся).

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΌΡ‹ ΠΎΡ‚Π²Π»Π΅ΠΊΠ»ΠΈΡΡŒ. ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ†Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ссылки, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° письма, Π½Π°Π±ΠΎΡ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΈ Ρ‚.ΠΏ.

К слову ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² своСй активности Π² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ… Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ (Intent Filter) Π½Π°Π±ΠΎΡ€ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²: action, data, category. И Ρ‚ΠΎΠ³Π΄Π° Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стандартный Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Π½ΠΎ ΠΈ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (ΠšΠΎΡ‚ ΠœΠ°Ρ‚Ρ€ΠΎΡΠΊΠΈΠ½ Π² Ρ‚Π°ΠΊΠΈΡ… случаях Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»: ΠŸΠΎΠ΄ΡƒΠΌΠ°Π΅ΡˆΡŒ, я Π΅Ρ‰Π΅ ΠΈ Π²Ρ‹ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ³Ρƒ. ΠΈ Π½Π° машинкС Ρ‚ΠΎΠΆΠ΅..).

Π˜Π½Ρ‹ΠΌΠΈ словами, Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ намСрСния ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с условиями нашСго Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°, Ρ‚ΠΎ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ) Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ΠΎ. БистСма сканируСт активности всСх установлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Ссли находится нСсколько подходящих активностСй, Ρ‚ΠΎ Android прСдоставляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Ρ‹Π±ΠΎΡ€, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ слСдуСт Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Если найдётся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° подходящая Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΎ, СстСствСнно, Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π° для Π²Ρ‹Π±ΠΎΡ€Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ запустится автоматичСски.

НСявныС намСрСния β€” это ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСйствий. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ систСму Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ дСйствиС, Π½Π΅ зная Π½ΠΈΡ‡Π΅Π³ΠΎ Π½ΠΈ ΠΎ самой активности, Π½ΠΈ ΠΎ Π΅Ρ‘ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. НапримСр, ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€, Π½ΠΎ понятия Π½Π΅ ΠΈΠΌΠ΅Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π΄ΠΎΠ·Π²ΠΎΠ½Π° ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π° своём Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅. Но это ΡƒΠΆΠ΅ Π½Π΅ наша ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΡƒΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сам Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π΅ΠΌΡƒ Π·Π²ΠΎΠ½ΠΈΡ‚ΡŒ ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ.

Боздавая Π½ΠΎΠ²ΠΎΠ΅ нСявноС Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ startActivity(), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ URI ΠΊ Ρ‚Π΅ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ намСрСния extras.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ этого намСрСния для запуска активности систСма Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния сама Π½Π°ΠΉΠ΄Ρ‘Ρ‚ класс ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ дСйствия, учитывая ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ возмоТности Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π½Π΅ зная ΠΏΡ€ΠΈ этом, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΊΠ°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания намСрСния с ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ дСйствиСм ACTION_VIEW для запуска Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ адрСс:

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС дСйствиС ACTION_VIEW ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ просмотр Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ. ΠœΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (адрСс), ΠΈ происходит запуск Π½ΠΎΠ²ΠΎΠΉ активности (Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°). ΠŸΡ€ΠΈ этом исходная Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ приостанавливаСтся ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Back, Ρ‚ΠΎ ΠΎΠ½ возвращаСтся ΠΊ исходной активности. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Ρ‚ΠΈΠΏΠ° Chrome, Opera ΠΈ Ρ‚.ΠΏ.

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ случаС Android Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, инициализируя Π΅Ρ‘ Π² случаС нСобходимости.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои собствСнныС Ρ‚ΠΈΠΏΡ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ прилоТСниям Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ.

РаньшС я писал ΠΊΠΎΠ΄ Π±Π΅Π· условия if ΠΈ это Π±Ρ‹Π»ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. Но слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, способноС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вашС Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, Π±ΡƒΠ΄Π΅Ρ‚ установлСно ΠΈ доступно Π½Π° устройствС. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π²ΠΎΠ½ΠΈΠ»ΠΊΠΈ, достаточна Π½ΠΈΠ·ΠΊΠ°. А Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ установлСно Π½Π° ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅ Π±Π΅Π· Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠ³ΠΎ модуля? А Ссли появятся Ρ…ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊΠΈ ΠΈΠ»ΠΈ ΡΡ‚ΠΈΡ€Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с Android Π½Π° Π±ΠΎΡ€Ρ‚Ρƒ? Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ для вашСго намСрСния, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρƒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° resolveActivity(). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ. Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π²ΠΎ всСх ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Π³Π΄Π΅-Ρ‚ΠΎ я ΠΌΠΎΠ³ просто ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ старый ΠΊΠΎΠ΄.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Intent содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ интСрСс для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ этому ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Intent содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ интСрСс для систСмы Android, β€” имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запуска этого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Intent ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля:

БистСма ΠΈ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄ΡƒΡ‚ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Intent для Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… систСмой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ слуТб ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ систСмы).

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ дСйствия

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с катСгориями Π² классС Intent ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π³Ρ€ΡƒΠΏΠΏΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΈ запуск Π·Π°Π΄Π°Π½ΠΈΠΉ

Если Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ дСйствия с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ систСмС Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚) для обслуТивания этого запроса. На ΠΏΠΎΠΌΠΎΡ‰ΡŒ приходят Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для рСгистрации активностСй, сСрвисов ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΠΎΠ² Π² качСствС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², способных Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ дСйствия с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Π²ΠΈΠ΄ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этих Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΠΈ, настроСнныС Π½Π° Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ дСйствия ΠΈΠ»ΠΈ события.

ЗадСйствуя Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, прилоТСния ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° дСйствия, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, установлСнной Π½Π° устройствС. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ прилоТСния Π² качСствС ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π΅Π³ Π² ΡƒΠ·Π΅Π» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² манифСстС.

Π’ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ дСкларируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€ΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent: дСйствиС, Π΄Π°Π½Π½Ρ‹Π΅, катСгория. ДополнСния ΠΈ Ρ„Π»Π°Π³ΠΈ Π½Π΅ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€ΠΎΠ»ΠΈ Π² принятии Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅.

НапримСр, Π² любом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ главная Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, которая устанавливаСтся ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° для задания:

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠ·Π»Π° Π€ΠΈΠ»ΡŒΡ‚Ρ€Π° Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚Π΅Π³ΠΈ (ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹).

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ

ΠŸΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΎΠ΄Π° startActivity() ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ нСявноС Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ лишь Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠΉ активности. Если для выполнСния Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ дСйствия с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ годятся сразу нСсколько активностСй, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ прСдоставляСтся список Π²Ρ‹Π±ΠΎΡ€Π°. ΠŸΡ€ΠΎΡ†Π΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΊΠ°ΠΊΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, называСтся Π£Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Π•Π³ΠΎ Ρ†Π΅Π»ΡŒ β€” Π½Π°ΠΉΡ‚ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящий Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Π’ Ρ†Π΅Π»ΠΎΠΌ вСсь Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Поиск ΠΈ использованиС намСрСния, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π»Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ

Когда ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ запускаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСявного намСрСния, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΉΡ‚ΠΈ дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ, ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ для Π½Π΅Π³ΠΎ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ getIntent() (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° onCreate()), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½.

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ getAction() ΠΈ getData(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ дСйствиС ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, связанныС с Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ. Для извлСчСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, хранящСйся Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ extras, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ get Extra.

Π”Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ отвСтствСнности

ЗадСйствуйтС ΠΌΠ΅Ρ‚ΠΎΠ΄ startNextMatchingActivity() для дСлСгирования отвСтствСнности Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ дСйствия ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ всСго для этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚.

Π­Ρ‚ΠΎ позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условия для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Ρ‚ сфСру ΠΈΡ… примСнСния Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ утвСрТдСния НамСрСний. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ваш ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Ρ‹Π±ΠΎΡ€, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ НамСрСниС Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ.

ACTION_PICK

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ ACTION_PICK Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΡƒΡŽ список элСмСнтов. ПослС этого Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° элСмСнта ΠΈΠ· этого списка. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ элСмСнт, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ URI Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ сторонС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ UI для Π²Ρ‹Π±ΠΎΡ€Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… элСмСнтов ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ со списком всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ (setType(«*/*»)):

Если ΠΌΡ‹ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нас интСрСсуСт, Ρ‚ΠΎ список ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ сущСствСнно сузится. НапримСр, Ссли ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ intent.setType(«image/*»);, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ГалСрСя для просмотра ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ (Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для просмотра ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ, поэтому список ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ).

ACTION_SEND

ΠžΡ‡Π΅Π½ΡŒ распространённоС Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ setType(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ MIME для ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ намСрСния extras с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ EXTRA_TEXT ΠΈΠ»ΠΈ EXTRA_STREAM, Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ°. Π’ случаС с элСктронной ΠΏΠΎΡ‡Ρ‚ΠΎΠΉ стандартноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Android Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ EXTRA_EMAIL, EXTRA_CC, EXTRA_BCC ΠΈ EXTRA_SUBJECT.

Если Π΅ΡΡ‚ΡŒ установлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт ACTION_SEND ΠΈ MIME-Ρ‚ΠΈΠΏΡƒ text/plain, систСма Android запустит Π΅Π³ΠΎ, Π° Ссли Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния, Ρ‚ΠΎ систСма ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²Ρ‹Π±ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Если ваша Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ намСрСния, Ρ‚ΠΎ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅:

Имя сообщаСт Android, Ρ‡Ρ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ACTION_SEND.

Π€ΠΈΠ»ΡŒΡ‚Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ DEFAULT, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½ Π½Π΅ смоТСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ нСявныС намСрСния.

Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ.

ACTION_GET_CONTENT

Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ прилоТСния для Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Волько Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, способная Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

Π’ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ getPath(). Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎ имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ имя Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ потрСбуСтся нСбольшая модификация:

Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π±ΠΎΡ€Π°

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΈΠ· списка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ. Π’ этом случаС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Но ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° createChooser() ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ придётся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ:

Если Π½Π° устройствС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ подходящих активностСй для запуска, Ρ‚ΠΎ createChooser() ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄Π°Π½Π½ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС. Π’ этом Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π΅Π³ΠΎ прСимущСство. Если ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ startActivity() Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ найдётся подходящСй активности, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ActivityNotFoundException. И Π²Π°ΠΌ придётся ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ try/catch, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ прилоТСния.

Android 12

Π’Π°ΠΊΠΆΠ΅ допустимо ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ true, Ссли ваша Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прилоТСния ΠΌΠΎΠ³Π»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ вашС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Аналогично справСдливо для случаСв ΠΈ .

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ вашСго прилоТСния ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стандартным способом, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ говорится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ курсС, Π½ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ странным способом. ΠŸΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ Π² манифСстС Ρƒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ активности ΠΌΠ΅Ρ‚Π°-Π΄Π°Π½Π½Ρ‹Π΅:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ намСрСния Intent

ΠŸΡ€ΠΈ рассмотрСнии ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² Π΄Π²ΡƒΡ… активностСй Π±Ρ‹Π» использован ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Intent. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° выполнялся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ активности Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассматриваСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Intent.

Intent прСдставляСт собой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ описания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· систСму Android. Π’.Π΅. Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent, послС Ρ‡Π΅Π³ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‘ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² систСму Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² активности Activity.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Intent Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ‚Ρ€Ρ‘Ρ… опСрациях :

1. Π‘Ρ‚Π°Ρ€Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
Π’ android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ΄ΠΈΠ½ экран прСдставлСн ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Activity, описанном Π² Ρ„Π°ΠΉΠ»Π΅ манифСста. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько экранов (страниц/Ρ„ΠΎΡ€ΠΌ), Ρ‚ΠΎ всС ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ зарСгистрированы Π² манифСстС прилоТСния. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ активности ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаСтся ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ startActivity(). ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Intent наряду с описаниСм ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ startActivityForResult(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Intent Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° onActivityResult().

2. Запуск сСрвиса
Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π±Π΅Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвиса, Π² качСствС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Service. БСрвис ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ для выполнСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ дСйствия, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°. Для старта сСрвиса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ активности startService() ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Intent.

Если сСрвис ΠΈΠΌΠ΅Π΅Ρ‚ интСрфСйс Ρ‚ΠΈΠΏΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ с Π½ΠΈΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ связь Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° bindService(), с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π΅ΠΌΡƒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent.

3. Рассылка ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сообщСний
Π¨ΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ сообщСниС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ любоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ android. БистСма Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сообщСния ΠΎ систСмных событиях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, зарядка устройства. Π¨ΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сообщСния ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌ прилоТСниям ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ sendBroadcast(), sendOrderedBroadcast() ΠΈΠ»ΠΈ sendStickyBroadcast().

Π’ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Intent

БущСствуСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Intent : явныС ΠΈ нСявныС.

Π―Π²Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Intent

Π’ качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° конструктора Intent указываСтся Context. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ являСтся наслСдником Context, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠΎΡ€ΠΎΡ‡Π΅Π½Π½ΡƒΡŽ запись this ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ°ΠΊ Class_name.this. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ конструктора указываСтся Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ класса активности. Π­Ρ‚ΠΎΡ‚ класс зарСгистрирован Π² манифСстС прилоТСния. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько активностСй, ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠΎ наимСнованию класса. ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° startActivity Π±ΡƒΠ΄Π΅Ρ‚ создана новая Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, которая запустится ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΠ²ΡˆΠΈΡΡŒ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка активностСй.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ старта сСрвиса

Если Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±Ρ‹Π» создан ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ сСрвис, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ServiceDownload для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, Ρ‚ΠΎ для запуска этого сСрвиса ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ :

НСявныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Intent

НСявныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Intent Π½Π΅ содСрТат ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ класса. ВмСсто этого ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ дСйствиС (action), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ. НСявный Intent ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ (category) ΠΈ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… (data). Π’Π°ΠΊΠΎΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ прилоТСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ этот запрос. НапримСр, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ мСсто Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅, Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСявного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ данная функция прСдусмотрСна.

Когда android ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ нСявный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Intent для выполнСния, Ρ‚ΠΎ систСма ΠΈΡ‰Π΅Ρ‚ подходящиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΡƒΡ‚Π΅ΠΌ сравнСния содСрТимого Intent с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ Intent Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, зарСгистрированных Π² Ρ„Π°ΠΉΠ»Π°Ρ… манифСстов. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Intent, Ρ‚ΠΎ систСма запускаСт этот ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Intent. ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… подходящих Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² систСма ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящСС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π€ΠΈΠ»ΡŒΡ‚Ρ€ Intent прСдставляСт собой ΡΠ΅ΠΊΡ†ΠΈΡŽ Π² Ρ„Π°ΠΉΠ»Π΅ манифСста прилоТСния, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Intent, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠ³ Π±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Intent Π² описании активности Π² манифСстС позволяСт Π΄Ρ€ΡƒΠ³ΠΈΠΌ прилоТСниям Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent. Если Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Intent Π½Π΅ описан, Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ явного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ использования нСявных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Intent для Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ²Ρ‹ API. ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ API Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСявных Intent ΡΠ²Π»ΡΡŽΡ‚ΡΡ асинхронными, Π° API-Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ синхронными. ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° API-Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² выполняСтся Π½Π° этапС компиляции, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π²Ρ‹Π·ΠΎΠ²Ρ‹ нСявных Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ привязкой ΠΊΠΎ врСмя выполнСния. НамСрСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ синхронно ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ привязку ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ активности, становится явным.

Π’ случаС, Ссли систСма Π½Π΅ смоТСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСявноС Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° startActivity ΠΈΠ»ΠΈ startActivityForResult, Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с ошибкой. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ этого слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ намСрСния resolveActivity для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ возмоТности выполнСния Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ дСйствия. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° resolveActivity рассмотрСн Π½Π° страницС описания взаимодСйствия с AlarmClock.

Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Intent

Π’ сСкциях Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ манифСста ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€ΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent : дСйствиС, Π΄Π°Π½Π½Ρ‹Π΅, катСгория. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ описания Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ для прилоТСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ сСтями.

Вторая Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ (ShareActivity) ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для упрощСния ΠΎΠ±ΠΌΠ΅Π½Π° тСкстовым ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² эту Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈΠ· MainActivity, ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ShareActivity Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ создаст нСявный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Intent, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π΄Π²ΡƒΡ… Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Intent.

ДСйствиС намСрСния, action

ДСйствиС action ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent опрСдСляСт, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ просмотр Ρ„ΠΎΡ‚ΠΎ (view) ΠΈΠ»ΠΈ Π²Ρ‹Π±ΠΎΡ€ Ρ„ΠΎΡ‚ΠΎ (pick). Π’ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни дСйствиС опрСдСляСт, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ описана ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ намСрСния Intent, Π² частности, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ содСрТится Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ДСйствиС для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ setAction() ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² конструкторС Intent. Если Π’Ρ‹ опрСдСляСтС собствСнныС дСйствия, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° прилоТСния. НапримСр :

Рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ формирования нСявного намСрСния для открытия ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ страницы сайта :

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаСтся Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ с дСйствиСм ACTION_VIEW, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΌ просмотр Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ. ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ намСрСния тСкущая Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ приостанавливаСт своё дСйствиС ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Back исходная Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ восстанавливСтся. НСкоторыС константныС значСния дСйствий, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² java-ΠΊΠΎΠ΄Π΅, прСдставлСны Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ :

ACTION_ANSWERΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с входящими Π·Π²ΠΎΠ½ΠΊΠ°ΠΌΠΈ.
ACTION_CALLΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρƒ.
ACTION_HEADSET_PLUGΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π°ΡƒΡˆΠ½ΠΈΠΊΠΎΠ².
ACTION_SENDΠ’Ρ‹Π·ΠΎΠ² активности для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ. ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ активности. Для указания Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… MIME ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ setType. Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ намСрСния extras с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ EXTRA_TEXT ΠΈΠ»ΠΈ EXTRA_STREAM Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ°. ΠŸΡ€ΠΈ использовании элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ стандартноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ EXTRA_EMAIL, EXTRA_CC, EXTRA_BCC ΠΈ EXTRA_SUBJECT.
ДСйствиС ACTION_SEND слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ адрСсату, Π° Π½Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ устройствС.
ACTION_SENDTOΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСний ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² ΠΏΡƒΡ‚ΠΈ URI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСтся Π² Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ.
ACTION_VIEWНаиболСС распространСнноС ΠΎΠ±Ρ‰Π΅Π΅ дСйствиС просмотра Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ. Π’Ρ‹Π±ΠΎΡ€ прилоТСния зависит ΠΎΡ‚ схСмы (ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°) Π΄Π°Π½Π½Ρ‹Ρ… : стандартныС адрСса http Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, адрСса tel Π²Ρ‹Π·ΠΎΠ²ΡƒΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π΄ΠΎΠ·Π²ΠΎΠ½Π°, geo ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Google Maps, Π° Π΄Π°Π½Π½Ρ‹Π΅ с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΡŽΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ для управлСния ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ.
ACTION_WEB_SEARCHΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ поиска ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡƒΡ‚ΠΈ URI; ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈ этом запускаСтся Π±Ρ€Π°ΡƒΠ·Π΅Ρ€.

ДСйствиС, опрСдСляСмоС Π² манифСстС, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ прСфикс «ACTION_», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«android.intent.action.SENDΒ». Π‘ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ константными дСйствиями ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² справочникС Intent.

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ намСрСния, category

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ – это строка, содСрТащая Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Intent ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ любоС количСство ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ. Однако Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Intent описаниС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π½Π΅ трСбуСтся.

Класс Intent для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с катСгориями ΠΈΠΌΠ΅Π΅Ρ‚ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² :

ΠŸΡ€ΠΈ описании ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ манифСста ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ стандартныС значСния, прСдоставляСмыС систСмой :

BROWSABLEΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ стартуСт Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ для отобраТСния Π΄Π°Π½Π½Ρ‹Ρ…, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ссылкС (url), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ сообщСниС элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹.
LAUNCHERΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ (Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ) являСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ с Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ΅ΠΉ помСщаСтся Π² ΠΎΠΊΠ½ΠΎ для запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
DEFAULTДанная катСгория позволяСт ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для дСйствия, выполняСмого с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ.
HOMEΠΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ с Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ΅ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π³Π»Π°Π²Π½Ρ‹ΠΉ экран (Home Screen), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ открываСтся послС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ устройства ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы, ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° наТимаСтся клавиша HOME.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½Ρ‹Π΅ наимСнования ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² java-ΠΊΠΎΠ΄Π΅, ΠΈΠΌΠ΅ΡŽΡ‚ прСфикс «CATEGORY_». Π‘ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ константными катСгориями ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² справочникС Intent.

Π”Π°Π½Π½Ρ‹Π΅ намСрСния

ΠŸΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ (data). НапримСр, для дСйствия ACTION_EDIT, Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ URI Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ трСбуСтся ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Uri ссылаСтся Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ/ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ этих Π΄Π°Π½Π½Ρ‹Ρ… MIME. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, опСрация, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран изобраТСния, скорСС всСго, Π½Π΅ смоТСт воспроизвСсти Π°ΡƒΠ΄ΠΈΠΎ/Π²ΠΈΠ΄Π΅ΠΎ Ρ„Π°ΠΉΠ», Π΄Π°ΠΆΠ΅ Ссли ΠΈ Ρƒ Ρ‚Π΅Ρ…, ΠΈ Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ URI. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… MIME ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ систСмС Android Π½Π°ΠΉΡ‚ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящий ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для выполнСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Intent.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ URI Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ setData(). Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΈΠΏ MIME, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ setType(). ΠŸΡ€ΠΈ нСобходимости опрСдСлСния ΠΎΠ±ΠΎΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ setDataAndType().

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ : Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ URI ΠΈ Ρ‚ΠΈΠΏ MIME слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ setDataAndType(). НС Π²Ρ‹Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ setData() ΠΈ setType() ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π°Π½Π½ΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

Π’ Ρ„Π°ΠΉΠ»Π΅ манифСста наряду с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Intent Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ прилоТСния. О Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ configChanges, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π»ΠΎ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ устройста (portrait|landscape) ΠΈΠ»ΠΈ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° экрана ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

Π”Π°Π½Π½Ρ‹Π΅, содСрТащиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для выполнСния Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ дСйствия, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Ρ‹ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅». Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² putExtra(), ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° : имя ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Bundle с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Intent с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° putExtras(). НапримСр, для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ адрСс получатСля ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° EXTRA_EMAIL, Π° Ρ‚Π΅ΠΌΡƒ сообщСния ― с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° EXTRA_SUBJECT.

Класс Intent ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько констант EXTRA_* для стандартных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнныС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Intent, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Π² качСствС прСфикса имя ΠΏΠ°ΠΊΠ΅Ρ‚Π° своСго прилоТСния. НапримСр :

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ намСрСния, Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ²ΡˆΠ΅Π³ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΈ стартС активности с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСявного намСрСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ для этого дСйствия. ΠœΠ΅Ρ‚ΠΎΠ΄ getIntent активности позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ намСрСния :

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ getAction() ΠΈ getData() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ дСйствиС ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, связанныС с Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, хранящСйся Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ extras, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ get Extra.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *