Android Görev Yakın İlgi Alanı Açıklaması


Yanıtlar:


161

Android Görev Yakın İlgi Alanı ne için kullanılır?

Bir android uygulamasında, kart destesi gibi bir yığın oluşturan Etkinlikler bulunur. Bir android uygulaması başlatırsanız ve beş etkinlik başlatırsanız A, B, C, D, E. Bir yığın oluşturacaklar

E   - chat view
D   - weather screen
C   - map view
B   - weather screen
A   - login screen

E, başlatılacak en son Aktiviteydi ve gösteriliyor. E'yi kapatırsanız, D gösterilecektir. D'yi kapatırsanız, C gösterilecektir. vb.

Aktiviteler Bve Daynı aktivite olduğuna dikkat edin . Ya kullanıcı üzerinde bazı değişiklikler yapıp D weather screen, etkinliği kapatmaya karar verip, sonra C Map view?

Daha sonra kullanıcı hava durumu ekranına geri dönecek ve seviyede yapılan değişiklikler seviye D weather screenolarak kaydedilmediği için kullanıcı mutsuz olacaktı B weather screen. Aynı aktivite olmasına rağmen, bu aktivitenin farklı bir DURUMU.

Kullanıcı 5 katmanlı etkinlik yığınına sahipti ve bunlardan ikisi aynı etkinlikti. Yığının 5'ini birden patlatmak, aynı aktivitenin iki farklı versiyonuyla etkileşime gireceğiniz fenomeni yaratacaktır ve oldukça kafa karıştırıcı olabilir.

Kullanıcılar genellikle katı bir faaliyet yığını olarak düşünmezler. "Ooh hava durumu görünümünde orada bir değişiklik yapacağım" diye düşünüyorlar ve ardından Harita görünümüne geri dönmek istiyorlar. Ardından, Oturum Açma ekranına geri dönmek istedikleri için tekrar yedekleyin. Neden B weather appgösteriliyor ve neden ayarları seviyeden kaydetmedi D?

Programcı, Etkinlikler Bve Ddurumla bağlantılıysa bazı karışıklıkları giderebilir . Bu şekilde biri diğerini değiştirir. Kullanıcı yeni bir hava durumu ekranı her açtığında, hava durumu ekranının tek bir örneğini gizlice açar.

Bu durumlarda, Aktivitenin görev Yakınlığını değiştirmek arzu edilebilir. Kullanıcı D düzeyini değiştirir. Sonra B düzeyine geri döner ve B'de D'ye yapılan değişiklikleri görür.

Program, yedekleyebileceğiniz bir yığın tutar, bu güzeldir ve kullanıcı aynı etkinliğin X örneğini rastgele yerlerde açtığında, hepsi birdir.

Daha fazla açıklama içeren slayt gösterisi: http://www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack


13
singleInstanceKullanmak yerine 'yi kullanırsanız nasıl olur taskAffinity?
hguser

5
Yukarıda açıklanan durumda, Intent.FLAG_ACTIVITY_REORDER_TO_FRONT'u Niyet Çağıran Aktivite D'de bir bayrak olarak kullanmayı tercih ederim, bu Aktivite B'yi diğerlerinin üzerine getirir ve sadece bir örneğini tutar
EyalBellisha

65
Aslında, bu cevaba neredeyse hiç taskAffinitydeğinmiyor :-( Açıklama belirsiz. Bu cevapların bu kadar çok olumlu oy alması şaşırtıcı.
David Wasser

6
Bu kadar uzun bir cevap ama yine de basit olgudan bahsetmiyor: taskAffinityAktivitenin içinde çalışmayı tercih ettiği görevin adını belirtmek için kullanılır. Bir Intentbayrak içerdiğinde FLAG_ACTIVITY_NEW_TASK, aktivite daha sonra bu özel göreve yerleştirilir (tarafından tanımlanır taskAffinity).
Stan Mots

3
Although it's the same activity, it's a different STATE of that activity."Bu , bu aktivitenin başka bir örneği " derdim .
Maksim Dmitriev

6

Yakınlık, bir etkinliğin hangi göreve ait olmayı tercih ettiğini gösterir.

Yakınlık iki durumda devreye girer:

Bir etkinliği başlatan amaç FLAG_ACTIVITY_NEW_TASK bayrağını içerdiğinde.

Bir etkinliğin allowTaskReparenting özniteliği "true" olarak ayarlanması durumunda.

Lütfen http://developer.android.com/guide/components/tasks-and-back-stack.html bakın


26
Developer.android.com
Anirban

Bu hiçbir şeyi açıklamaz. Pratikte ne anlama geliyor?
James Andrews

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.