🏹Implicit intents
🎯 Hangi Amaçla Kullanılır
İşletim sistemi tarafından yönetilen isteklerdir
Hangi uygulamanın çalıştırılacağına işletim sistemi karar verir
Diğer uygulamalara istekte bulunmayı sağlar
✅ App Chooser adı verilen yapı ile kullanıcıya seçim hakkı tanınır

✅ App Chooser

✨ Implicit Intent Oluşturma
Intent
oluşturmadan önce isteği karşılayabilecekActivity
var mı kontrol edilmelidir.İsteklerini sağlayacak
Activity
olmazsa uygulama kapanır
// Implicit intent oluşturma
Intent sendIntent= new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");
// Intent başlığını ayarlama
String title = getResources().getString(R.string.chooser_title);
// App Chooser oluşturma
Intent chooser = Intent.createChooser(sendIntent, title);
// İsteği sağlayacak Activity var mı kontrolü
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(chooser);
}
🔛 Implicit Intent Alma
AndroidManifest.xml
dosyasındaintent-filter
ile tanımlanan uygulamalardan biri seçilirintent-filter
0 veya daha fazlaaction
,category
veyadata
içeririntent-filter
içermeyenActivity
'ler sadece explicit intent ile çağrılabilirBirden fazla
intent-filter
veya birintent-filter
için birden fazlaaction
,category
veyadata
tanımlanabilir
<intent-filter>
<!-- Açılış Activity'si oluduğunu belirtlir -->
<action android:name="android.intent.action.MAIN" />
<!-- Launcher ekranında (telefon ana ekranında) gözükmesini sağlar -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<activity android:name="ShareActivity">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
Action yapısı Intent üzerinde
ACTION_
ön eki ile kullanılır
<intent-filter>
<!-- Intent sendIntent = new Intent(Intent.ACTION_SEND); -->
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.VIEW" />
</intent-filter>
🔀 ShareCompat.IntentBuilder
ile Veri Paylaşma
ShareCompat.IntentBuilder
ile Veri PaylaşmaSosyal ağ uygulamalarında veri paylaşmak için kullanılan yöntemdir
Implicit intent yerine, Android sunduğu bu yapı daha faydalıdır
ShareCompat.IntentBuilder
.from(this) // information about the calling activity
.setType(mimeType) // mime type for the data
.setChooserTitle("Share this text with: ") //title for the app chooser
.setText(txt) // intent data
.startChooser(); // send the intent
👨💼 Görevleri Yönetme
Android'in çalışma yapısı gereği,
Activity
'ler eski açık olanı kullanmak yerine kendileri yeniActivity
oluştururlar (Şekil 1)Implicit intent ile açılan
Activity
'ler de, asıl çalışanActivity
'den bağımsız olarak açılır (Şekil 2)


🔗 Faydalı Kaynaklar
Last updated
Was this helpful?