Android 10 (API düzeyi 29) ve uygulamaların ne zaman başlatılabileceğine ilişkin daha üst düzey kısıtlamalar etkinlikler görebilirsiniz. Bu kısıtlamalar, kullanıcı ve içerik üreticinin kesintilerini en aza kullanıcının ekranda gösterilenler üzerinde daha fazla kontrol sahibi olmasını sağlar.
Bu rehberde, başlangıç etkinlikleri için alternatif olarak bildirimler görebilirsiniz. Ayrıca, kısıtlamanın geçerlidir.
Bunun yerine bildirimleri göster
Neredeyse her durumda, arka planda çalışan uygulamalar zamana duyarlı bildirimlerle bir etkinliği doğrudan başlatmak yerine kullanıcıya acil bilgiler sağlama. Bu bildirimlere örnek olarak, gelen bir telefon aramasını veya etkin bir alarmı işleme verilebilir. saat.
Bildirime dayalı bu uyarı ve hatırlatma sistemi birçok avantaj sağlar kullanıcılar için:
- Kullanıcı, cihazı kullanırken bir uyarı bildirimi görür. Bu bildirimle kullanıcı, yanıt verebilir. Kullanıcı, içinde bulunduğu bağlamı korur ve içerik üzerinde kontrol sahibi olur. içerik yer alır.
- Zamana duyarlı bildirimler kullanıcının Rahatsız Etmeyin kuralları. Örneğin, Örneğin, kullanıcılar yalnızca belirli kişilerden gelen veya tekrar eden aramalara izin verebilir Rahatsız Etmeyin modu etkinken arayanlar.
- Cihazın ekranı kapalıyken tam ekran intent başlatılır hemen teslim edebilirsiniz.
- Cihazın Ayarlar ekranında, kullanıcı hangi uygulamaların belirli bildirim kanallarından gelen bildirimler de dahil olmak üzere son gönderilen bildirimler Bu ekrandan kullanıcı, bildirim tercihlerini kontrol edebilir.
Uygulamaların ne zaman etkinlik başlatabileceği
Android 10 veya sonraki bir sürümde çalışan uygulamalar şu durumlarda etkinlik başlatabilir: aşağıdaki koşullardan biri veya daha fazlası karşılanır:
- Uygulamanın, ön plandaki bir etkinlik gibi görünür bir penceresi vardır.
- Uygulamanın şurada bir etkinliği var: geri yığınını ön plan görevi görebilir.
Uygulamanın Son kullanılanlar ekranı.
Uygulamada çok kısa süre önce başlayan bir etkinlik var.
finish()
adlı uygulama bir etkinliktir. Bu yalnızca uygulamada herhangi bir veya arka yığınındaki bir etkinliği ön plandafinish()
çağrıldığında ön plan görevi.Uygulama, sisteme bağlı aşağıdaki hizmetlerden birine sahip. Bu bir kullanıcı arayüzü başlatması gerekebilir.
AccessibilityService
AutofillService
CallRedirectionService
HostApduService
InCallService
TileService
(Android 14 (API düzeyi 34) ve sonraki sürümlerde geçerli değildir)VoiceInteractionService
VrListenerService
.
Uygulama, görünür durumdaki farklı bir uygulamaya bağlı bir hizmete sahip. Uygulama arka planda uygulama için görünür kalması gerekir. ve aktiviteleri başarılı bir şekilde başlatabilirsiniz.
Uygulama bir bildirim alır Sistemden
PendingIntent
. İçinde hizmetler ve yayın alıcıları için bekleyen niyetler örneğine bakalım. , bekleyen intent gönderildikten sonra birkaç saniye süreyle etkinlik başlatabilir.Uygulama, farklı, görünür bir yerden gönderilen
PendingIntent
alıyor uygulamasını indirin.Uygulama, bir sistem yayınını başlatması beklenen uygulama tarafından Kullanıcı arayüzü. Örnek olarak şunlar verilebilir:
ACTION_NEW_OUTGOING_CALL
veSECRET_CODE_ACTION
. Uygulama, yayın gönderildikten birkaç saniye sonra etkinlikleri başlatabilir.Uygulama,
CompanionDeviceManager
API'ye gidin. Bu API, uygulamanın kullanıcı eşlenmiş bir cihazda işlem yaptığını gösterir.Bu uygulama şurada çalışan bir cihaz politikası denetleyicidir: cihaz sahibi moduna girmesini isteyin. Kullanım alanlarına şunlar örnek verilebilir: tümüyle yönetilen kurumsal cihazlar dijital cihazlar gibi özel cihazlar da tabelalar ve kiosklar.
Kullanıcı, uygulamaya
SYSTEM_ALERT_WINDOW
izni verdi.
PendingIntent'lerden etkinlik başlatırken etkinleştirilmesi gerekir
Yanlışlıkla Etkinlik'in başlatılmasına izin vermemek için listelenen koşulları ile ilgili daha fazla bilgi edinin. Android 14'ten itibaren, uygulamanızın dokunun.
Android 15 veya sonraki sürümleri hedefleyen uygulamalar artık varsayılan olarak örtülü olmayacak
PendingIntents
kullanıcıya arka planda etkinlik başlatma (BAL) ayrıcalıkları verme
oluştur. Açıkça tercih edilmesi gerekir. Bunu yapmak için seçenekler şunlardır:
uygulamanın PendingIntents
gönderip oluşturmasına veya oluşturmasına bağlı olarak farklılık gösterir.
PendingIntent'in Göndereni Tarafından
Android 14 veya sonraki sürümleri hedefleyen ve bir PendingIntent
başlatmak isteyen uygulamalar
- listelenen koşulları ve
- bu istisnalara göre arka plan etkinliğinin başlatılmasına izin vermeyi etkinleştirme
Bu etkinleştirme işlemi yalnızca uygulama geliştirici uygulamanın bir Etkinlik başlatır.
Etkinleştirmek için uygulama, şunları içeren bir ActivityOptions
paketi iletmelidir:
setPendingIntentBackgroundActivityStartMode(ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED)
PendingIntent.send()
veya benzer yöntemler ile değiştirebilirsiniz.
PendingIntent'in İçerik Üreticisi Tarafından
PendingIntent
oluşturan ve Android 15 veya sonraki sürümleri hedefleyen uygulamalar artık
arka plan etkinliğinin başlatılmasına izin vermeyi açıkça etkinleştirme
PendingIntents
, listelenen koşullar altında başlatılabilir.
Çoğu durumda, PendingIntent
başlatan uygulama etkinleştirilir.
Ancak, uygulamayı oluşturan uygulamanın bu ayrıcalıkları vermesi gerekiyorsa:
PendingIntent
, oluşturma uygulaması görünür olduğunda başlatılabilir.- Uygulama oluşturma uygulamasında özel bir özellik varsa
PendingIntent
başlatılabilir. ayrıcalıkları.
Etkinleştirmek için uygulama, şunları içeren bir ActivityOptions
paketi iletmelidir:
Şuraya setPendingIntentCreatorBackgroundActivityStartMode
(ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED)
:
PendingIntent.getActivity()
veya benzer yöntemler.
Daha fazla bilgi için ilgili referans belgelerini okuyun:
ActivityOptions.setPendingIntentBackgroundActivityStartMode
ActivityOptions.setPendingIntentCreatorBackgroundActivityStartMode