Genel Bakış ekranı olarak da adlandırılan Son Kullanılanlar ekranı, veya son uygulamalar ekranı, son zamanlarda erişilen uygulamaları listeleyen sistem düzeyinde bir kullanıcı arayüzüdür. aktiviteleri ve görevleri kapsar. Kullanıcı listede gezinebilir, bir görev seçerek bir görevi hızlıca kaydırıp listeden kaldırabilirsiniz.
Son Kullanılanlar ekranında doküman merkezli bir model - Android 5.0 (API) düzey 21) - bu durumda birden fazla farklı dokümanlar içeren aynı etkinlik, başka bir dokümandaki Son kullanılanlar ekranı. Örneğin, Google Drive'da Google dokümanıdır. Her doküman, Son Kullanılanlar'da bir görev olarak görünür ekran:
Sık karşılaşılan diğer bir örnek de kullanıcının tarayıcısını kullanması ve Paylaş > Gmail. Gmail uygulamasının Oluştur ekranı görünür. Ekrandaki O sıradaki Son Kullanılanlar düğmesi, Chrome ve Gmail'in ayrı olarak çalıştığını gösterir görevler:
Normalde, sistem tarafından görevlerinizin ve aktivitelerinizin nasıl ilerleyeceğini Son kullanılanlar ekranında gösterilir. Bu kimliği değiştirmeniz gerekmez. gösterir. Ancak uygulamanız, etkinliklerin Son kullanılanlar ekranı.
İlgili içeriği oluşturmak için kullanılan
ActivityManager.AppTask
sınıftaki görevleri yönetmenize olanak tanır. Ayrıca,
Intent
sınıfı, aşağıdaki durumlarda belirtmenizi sağlar:
Etkinlik, Son Kullanılanlar ekranına eklenir veya ekrandan kaldırılır. Ayrıca,
<activity>
özellikleri,
manifest'teki davranışı kontrol edin.
Son Kullanılanlar ekranına görev ekleme
Aşağıdaki işlemler için Intent
sınıfının işaretlerini kullanma
görev ekleme işlevi, bir dokümanın ne zaman ve nasıl açılacağı veya
Son Kullanılanlar ekranında tekrar açıldı.
<activity>
özellikleri hakkında daha fazla bilgi
dokümanı her zaman yeni bir görevde açma veya mevcut bir dokümanı yeniden kullanma arasında seçim yapabilirsiniz
görevi görebilir.
Görev eklemek için Intent işaretini kullanma
Etkinliğiniz için yeni bir doküman oluşturduğunuzda
startActivity()
yöntemi, etkinliği başlatan niyeti iletir. Mantıksal bir
Böylece sistem, etkinliğinizi Son Arananlar listesinde yeni bir görev olarak görür
ekranın en altındaki
FLAG_ACTIVITY_NEW_DOCUMENT
addFlags()
'te bayrakla
Intent
etkinliği'ne dokunun.
FLAG_ACTIVITY_MULTIPLE_TASK
özelliğini ayarlarsanız
yeni bir doküman oluşturduğunuzda sistem her zaman yeni bir
hedef etkinliği seçin. Bu ayar, aynı dokümanın
birden fazla görevde açılmış olabilir. Aşağıdaki kod, ana makinenin
işlemi şunu yapıyor:
Kotlin
fun createNewDocument(view: View) { val newDocumentIntent = newDocumentIntent() if (useMultipleTasks) { newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK) } startActivity(newDocumentIntent) } private fun newDocumentIntent(): Intent = Intent(this, NewDocumentActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT or android.content.Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS) putExtra(KEY_EXTRA_NEW_DOCUMENT_COUNTER, documentCounter++) }
Java
public void createNewDocument(View view) { final Intent newDocumentIntent = newDocumentIntent(); if (useMultipleTasks) { newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); } startActivity(newDocumentIntent); } private Intent newDocumentIntent() { boolean useMultipleTasks = checkbox.isChecked(); final Intent newDocumentIntent = new Intent(this, NewDocumentActivity.class); newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); newDocumentIntent.putExtra(KEY_EXTRA_NEW_DOCUMENT_COUNTER, documentCounter++); return newDocumentIntent; } }
Ana etkinlik yeni bir etkinlik başlattığında, sistem yeni bir etkinlik başlattığında
amacı, amacı bileşeniyle eşleşen bir kullanıcı için mevcut görevleri
. Görev bulunmazsa veya amacın içeriği
FLAG_ACTIVITY_MULTIPLE_TASK
işaretini kaldırırsanız etkinlik kökü olarak yeni bir görev oluşturulur.
Sistem, amacın amaç bileşeni adıyla eşleşen bir görev bulursa ve
bu görevi en üste getirir ve yeni niyeti kullanıcılara iletir.
onNewIntent()
.
Yeni etkinlik amacı alır ve Son kullanılanlar'da yeni bir doküman oluşturur
aşağıdaki örnekte gösterildiği gibi:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_new_document) documentCount = intent .getIntExtra(DocumentCentricActivity.KEY_EXTRA_NEW_DOCUMENT_COUNTER, 0) documentCounterTextView = findViewById(R.id.hello_new_document_text_view) setDocumentCounterText(R.string.hello_new_document_counter) } override fun onNewIntent(newIntent: Intent) { super.onNewIntent(newIntent) /* If FLAG_ACTIVITY_MULTIPLE_TASK has not been used, this Activity will be reused. */ setDocumentCounterText(R.string.reusing_document_counter) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new_document); documentCount = getIntent() .getIntExtra(DocumentCentricActivity.KEY_EXTRA_NEW_DOCUMENT_COUNTER, 0); documentCounterTextView = (TextView) findViewById( R.id.hello_new_document_text_view); setDocumentCounterText(R.string.hello_new_document_counter); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); /* If FLAG_ACTIVITY_MULTIPLE_TASK has not been used, this activity is reused to create a new document. */ setDocumentCounterText(R.string.reusing_document_counter); }
Görev eklemek için etkinlik özelliğini kullanın
Bir etkinlik, manifest dosyasında her zaman yeni bir
görevi <activity>
kullanarak
android:documentLaunchMode
özelliğini gönderin.
Bu özelliğin dört değeri vardır ve kullanıcı
şu uygulamayı içeren bir doküman açar:
intoExisting
- Etkinlik, doküman için mevcut bir görevi yeniden kullanıyor. Bu,
FLAG_ACTIVITY_NEW_DOCUMENT
şu ayarı olmadan işaretle:FLAG_ACTIVITY_MULTIPLE_TASK
aşağıdaki adımları izleyin: Görev eklemek için Niyet işaretini kullanma bölümü. always
- Etkinlik, doküman için yeni bir görev oluşturur (doküman şu durumda olsa bile):
açılmış. Bu değeri kullanmak,
FLAG_ACTIVITY_NEW_DOCUMENT
veFLAG_ACTIVITY_MULTIPLE_TASK
işaretleri. none
- Etkinlik, doküman için yeni bir görev oluşturmaz. Son Arananlar ekranı, etkinliği varsayılan olarak olduğu gibi ele alır. Tek bir görev gösteriyor kullanıcı tarafından çağrılan etkinlikten devam ettirilir.
never
- Etkinlik, doküman için yeni bir görev oluşturmaz. Bu değerin ayarlanması
şunun davranışını geçersiz kılar:
FLAG_ACTIVITY_NEW_DOCUMENT
FLAG_ACTIVITY_MULTIPLE_TASK
işaretidir. Bunlardan biri intent'de ve Son Kullanılanlar ekranında ayarlanmışsa uygulama için tek bir görev görüntülediğinde, kullanıcının son çağrılması. ziyaret edin.
Görevleri kaldırma
Varsayılan olarak bir doküman görevi Son Kullanılanlar ekranından otomatik olarak çıkar
ve izlemesi gerektiğini belirtir. Bu davranışı
ActivityManager.AppTask
Intent
bayrağı veya
<activity>
özelliği olabilir.
Bir görevi Son Kullanılanlar ekranından tamamen hariç tutmak için istediğiniz zaman
<activity>
özelliği
android:excludeFromRecents
kime: true
.
Uygulamanızın dahil edebileceği maksimum görev sayısını
Son Kullanılanlar ekranı
<activity>
özelliği
android:maxRecents
-
tam sayı değeri. Maksimum görev sayısına ulaşıldığında
en son kullanılan görev Son Kullanılanlar ekranından kaybolur. Varsayılan değer 16'dır.
ve maksimum değer 50'dir (düşük bellekli cihazlarda 25). Daha az değer
geçerli değildir.
Görevleri kaldırmak için AppTask sınıfını kullanma
Son Kullanılanlar ekranında yeni bir görev oluşturan etkinlikte şunları yapabilirsiniz:
görevin ne zaman kaldırılacağını ve görevle ilişkili tüm faaliyetlerin ne zaman
finishAndRemoveTask()
yöntem:
Kotlin
fun onRemoveFromOverview(view: View) { // It is good pratice to remove a document from the overview stack if not needed anymore. finishAndRemoveTask() }
Java
public void onRemoveFromRecents(View view) { // The document is no longer needed; remove its task. finishAndRemoveTask(); }
Tamamlanmış görevleri tutma
Son kullanılanlar ekranında bir görevi tutmak isterseniz, onun yerine
ve görevleri tamamlamak için
FLAG_ACTIVITY_RETAIN_IN_RECENTS
CANNOT TRANSLATE
addFlags()
yöntemi
amacını belirtmelisiniz.
Kotlin
private fun newDocumentIntent() = Intent(this, NewDocumentActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT or android.content.Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS) putExtra(KEY_EXTRA_NEW_DOCUMENT_COUNTER, getAndIncrement()) }
Java
private Intent newDocumentIntent() { final Intent newDocumentIntent = new Intent(this, NewDocumentActivity.class); newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT | android.content.Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS); newDocumentIntent.putExtra(KEY_EXTRA_NEW_DOCUMENT_COUNTER, getAndIncrement()); return newDocumentIntent; }
Aynı efekti elde etmek için
<activity>
özelliği
android:autoRemoveFromRecents
false
adlı yere. Varsayılan değer, doküman etkinlikleri için true
ve doküman etkinlikleri için false
değeridir
düzenli aktiviteler. Bu özelliğin kullanılması,
FLAG_ACTIVITY_RETAIN_IN_RECENTS
işareti.
Son kullanılanların URL paylaşımını etkinleştirme (yalnızca Pixel)
Android 12 veya sonraki sürümleri çalıştıran Pixel cihazlarda kullanıcılar bağlantı paylaşabilir son görüntülenen web içeriğine doğrudan Son Kullanılanlar ekranından erişebilirsiniz. Ziyaretten sonra Kullanıcı, Son Uygulamalar ekranına gidip uygulamayı bulabilir. daha sonra bağlantıyı kopyalamak veya paylaşmak için bağlantı düğmesine URL'yi tıklayın.
Herhangi bir uygulama, kullanıcı arayüzü sağlayarak Son kullanılanlar bağlantısını etkinleştirebilir.
geçersiz kılma
onProvideAssistContent()
aşağıdaki örnekte gösterildiği gibi:
Kotlin
class MainActivity : AppCompatActivity() { protected fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun onProvideAssistContent(outContent: AssistContent) { super.onProvideAssistContent(outContent) outContent.setWebUri(Uri.parse("https://example.com/myCurrentPage")) } }
Java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onProvideAssistContent(AssistContent outContent) { super.onProvideAssistContent(outContent); outContent.setWebUri(Uri.parse("https://example.com/myCurrentPage")); } }