IOnReceiveContentListener.OnReceiveContent(View, ContentInfo) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Empfangen sie den angegebenen Inhalt.
[Android.Runtime.Register("onReceiveContent", "(Landroid/view/View;Landroid/view/ContentInfo;)Landroid/view/ContentInfo;", "GetOnReceiveContent_Landroid_view_View_Landroid_view_ContentInfo_Handler:Android.Views.IOnReceiveContentListenerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=31)]
public Android.Views.ContentInfo? OnReceiveContent (Android.Views.View view, Android.Views.ContentInfo payload);
[<Android.Runtime.Register("onReceiveContent", "(Landroid/view/View;Landroid/view/ContentInfo;)Landroid/view/ContentInfo;", "GetOnReceiveContent_Landroid_view_View_Landroid_view_ContentInfo_Handler:Android.Views.IOnReceiveContentListenerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=31)>]
abstract member OnReceiveContent : Android.Views.View * Android.Views.ContentInfo -> Android.Views.ContentInfo
Parameter
- view
- View
Die Ansicht, in der die Inhaltseinfügung angefordert wurde.
- payload
- ContentInfo
Der Inhalt, der eingefügt werden soll, und zugehörige Metadaten. Die Nutzlast kann mehrere Elemente enthalten, und ihre MIME-Typen können unterschiedlich sein (z. B. ein Bildelement und ein Textelement). Die Nutzlast kann auch Elemente enthalten, deren MIME-Typ nicht in der Liste der MIME-Typen enthalten ist, die beim View#setOnReceiveContentListener setting
Listener angegeben sind. Bei diesen Elementen kann der Listener den Inhalt ablehnen (auf das Standardverhalten der Plattform zurückstellen) oder eine andere Fallbacklogik ausführen (z. B. dem Benutzer eine entsprechende Nachricht anzeigen).
Gibt zurück
Der Teil der übergebenen Inhalte, deren Verarbeitung an die Plattform delegiert werden soll. Gibt NULL zurück, wenn alle Inhalte auf irgendeine Weise behandelt wurden. Die tatsächliche Einfügung des Inhalts wird möglicherweise asynchron im Hintergrund verarbeitet und kann auch dann erfolgreich ausgeführt werden, wenn diese Methode NULL zurückgibt. Eine App kann z. B. kein Element einfügen, wenn sie den Größengrenzwert der App für diesen Inhaltstyp überschreitet.
- Attribute
Hinweise
Empfangen sie den angegebenen Inhalt.
Implementierungen sollten alle interessanten Inhaltselemente behandeln und alle unbehandelten Elemente zurückgeben, um das Standardverhalten der Plattform für Inhalte beizubehalten, die keine appspezifische Behandlung aufweisen. Eine Implementierung kann z. B. die Verarbeitung von Inhalts-URIs (zur Unterstützung des Einfügens von Bildern usw.) bereitstellen und die Verarbeitung von Text an die Plattform delegieren, um das allgemeine Verhalten für das Einfügen von Text beizubehalten. Eine Beispielimplementierung finden Sie im Klassen-Javadoc.
<h3>Behandeln unterschiedlicher Inhalte</h3><ul><li>Text. Ist dies der ContentInfo#getSource() source
ContentInfo#SOURCE_AUTOFILL autofill
Grund, sollte der Inhalt der Ansicht vollständig durch den übergebenen Text ersetzt werden. Bei anderen Quellen als dem automatischen Ausfüllen sollte der übergebene Text die aktuelle Markierung überschreiben oder an der aktuellen Cursorposition eingefügt werden, wenn keine Auswahl vorhanden ist. <li>Nicht-Text-Inhalt (z. B. Bilder). Der Inhalt kann inline eingefügt werden, wenn das Widget dies unterstützt, oder er kann als Anlage hinzugefügt werden (kann möglicherweise in einer vollständig separaten Ansicht angezeigt werden). </ul>
<h3>URI-Berechtigungen</h3>
android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION Read permissions
wird automatisch von der Plattform für alle android.content.ContentResolver#SCHEME_CONTENT content URIs
an diesen Listener übergebenen Nutzlasten gewährt. Berechtigungen sind vorübergehend und werden automatisch von der Plattform freigegeben.
Die Verarbeitung von Inhalten sollte normalerweise in einem Dienst oder einer Aktivität erfolgen. Für eine lange Verarbeitung wird die Verwendung androidx.work.WorkManager
empfohlen. Bei der Implementierung sollten Berechtigungen auf den Zieldienst oder die Zielaktivität erweitert werden, indem der Inhalt mithilfe android.content.Intent#setClipData Intent.setClipData
und android.content.Intent#addFlags(int) setting
das Flag android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION FLAG_GRANT_READ_URI_PERMISSION
übergeben wird.
Alternativ sollte bei Verwendung eines Hintergrundthreads innerhalb des aktuellen Kontexts zum Verarbeiten des Inhalts ein Verweis auf das payload
Objekt beibehalten werden, um sicherzustellen, dass Berechtigungen nicht vorzeitig widerrufen werden.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.