Der Bildschirm „Letzte“, auch Übersichtsbildschirm genannt, „Liste“ oder „Zuletzt verwendete Apps“ ist eine Benutzeroberfläche auf Systemebene, auf der die zuletzt aufgerufenen Aktivitäten und Aufgaben. Die Nutzenden können durch die Liste navigieren, eine Aufgabe auswählen, oder eine Aufgabe aus der Liste entfernen, indem Sie sie wegwischen.
Auf dem Bildschirm „Letzte“ werden Dokumente Modell – Einführung in Android 5.0 (API) Ebene 21) angezeigt, bei der mehrere Instanzen kann dieselbe Aktivität mit unterschiedlichen Dokumenten als Aufgaben im Bildschirm „Letzte“. So kann es in Google Drive beispielsweise für jede Ihrer in verschiedenen Google-Dokumenten. Jedes Dokument wird unter „Letzte“ als Aufgabe angezeigt. Bildschirm:
<ph type="x-smartling-placeholder">Ein weiteres häufiges Beispiel ist, wenn Nutzende im Browser Teilen > Gmail: Der Bildschirm Schreiben der Gmail App wird angezeigt. Tippen Sie auf das Symbol Die Schaltfläche „Letzte Apps“ zeigt, dass Chrome und Gmail separat ausgeführt werden. Aufgaben:
<ph type="x-smartling-placeholder">Normalerweise lassen Sie das System definieren, wie Ihre Aufgaben und Aktivitäten die auf dem Bildschirm „Zuletzt verwendet“ angezeigt werden. Sie müssen hier nichts ändern verhalten. Ihre App kann jedoch festlegen, wie und wann Aktivitäten im Zuletzt verwendet.
Die
ActivityManager.AppTask
-Klasse können Sie Aufgaben und die Aktivitäts-Flags der
Intent
können Sie festlegen,
Aktivitäten werden zum Bildschirm „Letzte“ hinzugefügt oder daraus entfernt. Die
Mit den <activity>
-Attributen können Sie
das Verhalten im Manifest.
Aufgaben zum Bildschirm „Letzte“ hinzufügen
Mit den Flags der Klasse Intent
können Sie
eine Aufgabe hinzufügen, haben Sie mehr Kontrolle darüber, wann und wie ein Dokument geöffnet oder
unter "Letzte" geöffnet. Wenn Sie die
<activity>
-Attribute können Sie
das Dokument immer in einer neuen Aufgabe öffnen oder ein vorhandenes
für das Dokument.
Mit dem Intent-Flag eine Aufgabe hinzufügen
Wenn Sie ein neues Dokument für Ihre Aktivität erstellen, rufen Sie das
startActivity()
und übergibt den Intent, der die Aktivität startet. So fügen Sie ein logisches
ab, damit das System Ihre Aktivität im Bereich „Letzte“ als neue Aufgabe behandelt
Bildschirm, übergeben Sie
FLAG_ACTIVITY_NEW_DOCUMENT
Flag im addFlags()
des Intent
-Objekts, das die
Aktivitäten.
Wenn Sie den FLAG_ACTIVITY_MULTIPLE_TASK
festlegen
Flag, wenn Sie das neue Dokument erstellen, erstellt das System immer eine neue Aufgabe mit
die Zielaktivität als Stamm. Mit dieser Einstellung kann dasselbe Dokument
in mehr als einer Aufgabe geöffnet. Der folgende Code zeigt, wie die
dies geschieht:
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; } }
Wenn die Hauptaktivität eine neue Aktivität startet, durchsucht das System
vorhandene Aufgaben für einen Nutzer, dessen Intent mit dem Namen der Intent-Komponente übereinstimmt und
die Absichtsdaten der Aktivität. Wenn die Aufgabe nicht gefunden wurde oder der Intent
FLAG_ACTIVITY_MULTIPLE_TASK
wird eine neue Aufgabe mit der Aktivität als Stamm erstellt.
Wenn das System eine Aufgabe findet, deren Intent dem Namen der Intent-Komponente entspricht, und
Intent-Daten zu analysieren, bringt sie diese Aufgabe in den Vordergrund und übergibt den neuen Intent an
onNewIntent()
Die neue Aktivität ruft den Intent ab und erstellt unter „Recents“ (Zuletzt verwendet) ein neues Dokument
wie im folgenden Beispiel gezeigt:
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); }
Aufgaben mithilfe des Attributs „Aktivität“ hinzufügen
Eine Aktivität kann in ihrem Manifest auch angeben, dass sie immer in einem neuen
mithilfe der <activity>
Attribut android:documentLaunchMode
.
Dieses Attribut hat vier Werte, die folgende Auswirkungen haben, wenn der Nutzer
öffnet ein Dokument mit der Anwendung:
intoExisting
- Durch die Aktivität wird eine vorhandene Aufgabe für das Dokument wiederverwendet. Dies entspricht der Einstellung
FLAG_ACTIVITY_NEW_DOCUMENT
kennzeichnen, ohne den ParameterFLAG_ACTIVITY_MULTIPLE_TASK
ein, wie in den Mithilfe des Intent-Flags eine Aufgabe hinzufügen always
- Durch die Aktivität wird eine neue Aufgabe für das Dokument erstellt, auch wenn das Dokument
bereits geöffnet ist. Die Verwendung dieses Werts entspricht der Einstellung
Die Flags
FLAG_ACTIVITY_NEW_DOCUMENT
undFLAG_ACTIVITY_MULTIPLE_TASK
. none
- Durch die Aktivität wird keine neue Aufgabe für das Dokument erstellt. The Recents behandelt die Aktivität wie standardmäßig. Es wird eine einzelne Aufgabe angezeigt. für die App, die bei jeder Aktivität fortgesetzt wird, die der Nutzer zuletzt aufgerufen hat.
never
- Durch die Aktivität wird keine neue Aufgabe für das Dokument erstellt. Diesen Wert festlegen
außer Kraft setzen, das Verhalten der
FLAG_ACTIVITY_NEW_DOCUMENT
undFLAG_ACTIVITY_MULTIPLE_TASK
Flags. Wenn eine dieser Optionen im Intent festgelegt ist und auf dem Bildschirm „Recents“ (Zuletzt verwendet) eine einzelne Aufgabe für die App anzeigt, wird sie bei jeder Aktivität fortgesetzt, Nutzer zuletzt aufgerufen.
Aufgaben entfernen
Standardmäßig wird eine Dokumentaufgabe automatisch den Bildschirm „Zuletzt verwendet“ verlassen.
sobald die Aktivität beendet ist. Sie können dieses Verhalten mit der Methode
ActivityManager.AppTask
class, mit dem Flag Intent
oder mit
ein <activity>
-Attribut.
Sie können eine Aufgabe jederzeit vollständig vom Bildschirm „Letzte“ ausschließen, indem Sie
Das Attribut <activity>
android:excludeFromRecents
an true
.
Sie können die maximale Anzahl von Aufgaben festlegen, die Ihre App in der
„Zuletzt verwendet“, indem Sie die
Attribut „<activity>
“
android:maxRecents
in ein
Ganzzahlwert. Wenn die maximale Anzahl von Aufgaben erreicht ist,
wird die zuletzt verwendete Aufgabe nicht mehr auf dem Bildschirm „Zuletzt verwendet“ angezeigt. Der Standardwert ist 16,
und der Höchstwert 50 (25 auf Geräten mit geringem Speicher). Weniger Werte
als 1 sind ungültig.
Aufgaben mithilfe der AppTask-Klasse entfernen
In der Aktivität, mit der eine neue Aufgabe auf dem Bildschirm „Letzte“ erstellt wird, können Sie
geben an, wann die Aufgabe entfernt und alle damit verbundenen Aktivitäten beendet werden sollen, indem
das Aufrufen der
finishAndRemoveTask()
:
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(); }
Erledigte Aufgaben beibehalten
Wenn Sie eine Aufgabe auf dem Bildschirm „Letzte“ behalten möchten, selbst wenn die
abgeschlossen haben, übergeben Sie
FLAG_ACTIVITY_RETAIN_IN_RECENTS
Flag im
addFlags()
-Methode des
zum Starten der Aktivität.
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; }
Um den gleichen Effekt zu erzielen,
Attribut <activity>
android:autoRemoveFromRecents
an false
. Der Standardwert ist true
für Dokumentaktivitäten und false
für
regelmäßiger Aktivitäten. Die Verwendung dieses Attributs überschreibt die
Flag FLAG_ACTIVITY_RETAIN_IN_RECENTS
.
Freigabe der zuletzt verwendeten URL aktivieren (nur Pixel)
Auf Pixel-Geräten mit Android 12 oder höher können Nutzer Links teilen. zu kürzlich angesehenen Webinhalten direkt über den Bildschirm "Letzte". Nach dem Besuch App-Inhalte angezeigt wird, können Nutzer zum Bildschirm „Letzte Apps“ wischen, um die App zu finden. wo sie sich die Inhalte angesehen haben, und tippen Sie dann auf die Link-Schaltfläche, um die Inhalte URL
<ph type="x-smartling-placeholder">Jede App kann die Verknüpfung von „Letzte Apps“ für Nutzer aktivieren, indem sie eine Weboberfläche und
wird überschrieben
onProvideAssistContent()
,
Dies wird im folgenden Beispiel gezeigt:
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")); } }