Laut der Android-Dokumentation, wenn ich nicht möchte, dass mein ShareActionProvider den Verlauf der Freigabe fortsetzt, sollte ich
aufrufen %Vor%Wenn ich das tue, stolpere ich jedoch bei der Auswahl einer Share-Option:
%Vor%Hier ist der Code, der den ShareActionProvider einrichtet:
%Vor%Irgendwelche Ideen, wie ich das beheben kann?
Am Ende musste ich meinen eigenen ShareActionProvider schreiben, indem ich den in der Android-Quelle gefundenen kopierte. Ich musste auch die ActivityChooserView und das ActivityChooserModel von der Quelle kopieren. Die tatsächliche Änderung, die zum Ausblenden der Standardaktivität in der Aktionsleiste erforderlich ist, befindet sich in der updateAppearance () -Methode in der ActivityChooserView. So sollte es aussehen:
%Vor%Ich konnte nicht herausfinden, warum setShareHistoryFileName (null) das Problem verursacht hat, das ich ursprünglich beschrieben habe. Danke für die versuchte Antwort Seven.
Lesen des Quellcodes auf ActivityChooserModel Ich habe festgestellt, dass die History-Datei mit Context openFileInput geöffnet ist. Solange diese Klasse weiterhin so funktioniert, können Sie Ihren Verlauf "sauber" halten, wenn Sie ihn mit der üblichen Methode für diese Art von Dateien löschen:
%Vor%Das Symbol "am häufigsten verwendet" wird für eine Weile angezeigt, wenn die ausgewählte Anwendung geöffnet wird. Sobald der Nutzer jedoch wieder in Ihrer App ist, wird er ausgeblendet.
Sie können die Datei bei Bedarf auch in Ihrer onShareTargetSelected-Methode löschen.
Ich habe alles versucht, ich benutze alte Widget.ShareActionProvider (nicht Kompat 7), so führt Null zum Absturz, deleteFile löscht sicher, aber Geschichte existiert immer noch nach dem Neustart der App ... so habe ich nur eine funktionierende Sache gefunden : zufällig!
%Vor%Tags und Links android android-intent android-actionbar shareactionprovider