Umgang mit (Cross-Prozess) Ausnahmen in Android benutzerdefinierten Content-Anbieter

Ich habe einen benutzerdefinierten Content-Provider in meiner Android-App, die gut funktioniert. Ich erwarte, dass andere Apps auch auf meinen Content-Provider zugreifen können. Ich möchte einen sauberen Weg, um Ausnahmen und Fehler zu kommunizieren, aber so weit ich kann sagen, die Android-Content-Anbieter-Framework bietet keine Möglichkeit, Ausnahmen über Prozesse zu verbreiten.

Wie soll ich einen Ausnahmezustand an meinen Anrufer angeben? Muss ich irgendwie in meine zurückgegebenen Daten kodieren und auf Kunden verlassen, um es zu überprüfen? Gibt es irgendeine Alternative? Wenn die Kodierung in die gewöhnlichen Rückgabe Daten ist es, was ist der beste Weg? (Ich kann eine Reihe von Alternativen für den Cursor von einem query Aufruf zurückgegeben werden, aber was ist mit dem Uri von insert , oder das int durch update oder delete ?)

  • Erstellen Sie Rundschreiben für Pre-Lollipop-Geräte (Android)
  • So kopieren Sie die Datei mit adb zu androides Verzeichnis, das vom PC aus zugänglich ist
  • RuntimeException: Ihr Inhalt muss eine ListView haben, deren ID-Attribut 'android.R.id.list' ist.
  • Wie kann ich eine Android ProgressBar's Size programmgesteuert einstellen?
  • Wie kann man verhindern, dass Retrofit automatisch einem 302 folgt
  • Hinzufügen einer Ansicht zu einem LinearLayout an einer bestimmten Position
  • Wie bekomme ich Stapel-Trace während der Laufzeit Android
  • SnackBar erscheint Animation
  • Wie kann man TextView in Android machen?
  • Benutzerdefinierte Anwendung nicht auf Android M erstellt (letzte Vorschau)
  • Android-Aktionsleiste zeigt keinen Überlauf an
  • Iframe-Unterstützung auf Handy
  • One Solution collect form web for “Umgang mit (Cross-Prozess) Ausnahmen in Android benutzerdefinierten Content-Anbieter”

    Es gibt eine kurze Liste von RuntimeException Unterklassen, die, wenn sie in den Provider geworfen werden, in einer Client-App erneut geworfen werden. Diese sind:

    • IllegalStateException
    • IllegalArgumentException
    • NullPointerException
    • SecurityException
    • BadParcelableException

    Quelle: Erstellen von Content-Providern erwähnt IAE und NPE ; Ich vermutete, dass die anderen auf der Grundlage der Javadoc für Parcel.writeException .

    Die Client-App wird nur die Detail-Nachricht, nicht eine Stack-Trace oder die Ursache Stack. Für außergewöhnlichen Zustand, der in einen String (die Detailnachricht) codiert werden kann, ist dies eine vernünftige Wahl.

    Ich interessiere mich auch noch für andere Lösungen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.