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 ?)

  • SVG Vs PNG auf Android
  • Wie behalte man die Erlaubnis in der Android API 19 (KitKat)?
  • Android youtube: Teilen Sie ein YouTube-Video zu meiner App?
  • Visual Studio 2015 Xamarin-Bereitstellung fehlgeschlagen ohne Fehlermeldung
  • Android - Wenn WebView sichtbar ein extra, Buggus, View ist auch erstellt wird
  • Android - Wie kann ich den Menüpunkt Text außerhalb von onOptionsItemsSelected oder onCreateOptionsMenu dynamisch ändern
  • Spinner bekommt keinen Fokus
  • Wie kann man einen Rückruf machen, nachdem die Ansicht komplett gerendert wurde?
  • Pass ein String von einer Aktivität zu einer anderen Aktivität in Android
  • ActivityUnitTestCase und startActivity mit ActionBarActivity
  • Fehler beim Verpacken von Kivy mit numpy Bibliothek für Android mit buildozer
  • So erstellen Sie Drawable aus Ressource
  • 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.