Uygulamanızı doğrudan ana ekrandan başlattığınızda, uygulamanız paylaşım amacı ile başka bir uygulamadan başlatıldığında iki bağlam arasında bir fark görebilirsiniz.
@CommonSenseCode tarafından belirtilen "standart olmayan arka yığın davranışlarının" ne anlama geldiğine dair pratik bir örnek:
Eğer birbirleri ile iletişim iki uygulamalarım var olduğunu varsayalım Uyg1 ve Uyg2 .
Başlatıcıdan App2: MainActivity'yi başlatın . Ardından MainActivity'den App2 : SeincilActivity'yi başlatın . Burada, etkinlik bağlamı veya uygulama bağlamı kullanılarak, her iki etkinlik de aynı görevde yaşar ve bu tamamdır (tüm standart başlatma modlarını ve niyet bayraklarını kullanmanız şartıyla). MainActivity'ye bir geri basışla geri dönebilirsiniz ve son uygulamalarda yalnızca bir göreviniz vardır.
Eğer olduklarını şimdi varsayalım Uyg1 ve fırlatma MainActivity: Uyg2 niyet payı (ACTION_SEND veya ACTION_SEND_MULTIPLE) ile. Daha sonra App2: SelementaryActivity'yi (her zaman tüm standart başlatma modları ve niyet bayrakları ile) başlatmaya çalışın . Ne olur:
Android <10'da App2: SeincilActivity'yi uygulama bağlamıyla başlatırsanız, tüm görevleri aynı görevde başlatamazsınız . Android 7 ve 8 ile denedim ve SelementaryActivity her zaman yeni bir görevde başlatılır (Sanırım App2: SeincilActivity, App2 uygulama bağlamıyla başlatıldı, ancak App1'den geliyorsunuz ve App2 uygulamasını doğrudan başlatmadınız Belki kaputun altında android bunu tanır ve FLAG_ACTIVITY_NEW_TASK kullanır). İhtiyaçlarınıza bağlı olarak bu iyi veya kötü olabilir, çünkü uygulamam kötüydü.
Android'de 10 günü uygulaması çöküyor mesajla
"FLAG_ACTIVITY_NEW_TASK bayrak bir Etkinlik kapsamında dışından startActivity () çağrılması gerekir. Bu İstediğin gerçekten var mı?" .
Bu nedenle, Android 10'da çalışmasını sağlamak için FALG_ACTIVITY_NEW_TASK kullanmanız gerekir ve tüm görevleri aynı görevde çalıştıramazsınız.
Gördüğünüz gibi davranış android sürümleri arasında farklı, garip.
App2: SeATIONALActivity'yi etkinlik bağlamıyla başlatırsanız tüm işler iyi gider ve tüm görevleri aynı görevde çalıştırarak doğrusal bir backstack navigasyonu elde edebilirsiniz.
Umarım faydalı bilgiler ekledim