Niyet Bayrakları ile bazı yanlış anlamalar yaşadığımı tahmin ediyorum. Yapmaya çalıştığım şey, bir radyo alıyorum. iki Etkinliği olan (PlayerApplication ve SettingsScreen) akış uygulamaları. Ben de bir Bildirim tutan arka planda çalışan Akış için bir Service.class var (bildirim-overlay menü ve PlayerApplication içinde oynatma/durdurma başlatabilirsiniz). Kullanıcı Bildirime tıklarsa, PlayerApplicationActivity ekrana geri dönmelidir.Android: Notification'dan PendingIntent, Etkinlik'i Ekranda geri getiriyorsa onCreate() öğesini tetiklemiyorsa,
Her şey çalışıyor, davayı bekliyoruz: Kullanıcı SettingsScreenActivity açar -> NotificationOverlayMenu açar -> Bildirim at tıklar -> PendingIntent PlayerApplicationScreen orada, Şimdi
PlayerApplicationActivity
üzere devam eder, ama bir şey tıklayamazsınız. Görüyorum ki, Bildirim Uygulamasından devam edersem PlayerApplication'ımın onCreate() öğesi tetiklenmez. İnce (aynı zamanda şişirilmiş onCreate()) Ama düzen görünüyor ben Service.class içinde PendingIntent aşağıdaki kullanılan: (zaten çalışıyor ise)
PendingIntent contentIntent = PendingIntent.getActivity(
this.getApplicationContext(), //Service.class
0,
new Intent(this,PlayerApplicationActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP),
0);
Yani aslında PendingIntent Aktivite getirmelidir geri üst. Yanlış Amaç mı kullanıyorum yoksa bir noktayı mı özlüyorum? Aradığınız aktivitenin örneği zaten çalışıyorsa,
SingleTask
:
DÜZENLEME: ve ben FLAG_ACTIVITY_CLEAR_TOP
, FLAG_ACTIVITY_SINGLE_TOP
içinde ve fırlatma modunda, android geliştirici site göre Manifest.xml
android:launchMode="singleTask"
'android
<application-node>
yılında launchMode ilan değildir: launchMode = "singleTask"' senin 'Activity' için ve Zaten çalışıyor, 'onCreate' –