Nella mia app per Android è disponibile un fornitore di contenuti personalizzato che funziona ragionevolmente bene. Prevedo che altre app possano accedere anche al mio fornitore di contenuti. Vorrei un modo pulito per comunicare eccezioni ed errori, ma per quanto posso dire il framework del content provider Android non fornisce alcun modo per propagare le eccezioni tra i processi.Gestione delle eccezioni (cross-process) nel fornitore di contenuto personalizzato Android
Come dovrei indicare uno stato di eccezione al mio chiamante? Devo in qualche modo codificarlo nei miei dati restituiti e contare sui client per verificarlo? C'è qualche alternativa? Se la codifica nei dati di ritorno ordinari è, qual è il modo migliore? (Posso vedere una serie di alternative per la Cursor
restituito da una chiamata query
, ma per quanto riguarda la Uri
restituito da insert
, o il int
restituito da update
o delete
?)
Quando si è tentato di generare una sorta di 'RuntimeException' dal proprio ContentProvider, cosa è successo? – CommonsWare
Utilizzando 'ContentProviderClient',' query' e 'insert' restituiscono' null' quando il provider lancia una 'RuntimeException'. Nel logcat posso vedere un messaggio con tag 'JavaBinder':' *** Eccezione remota non rilevata! (Le eccezioni non sono ancora supportate tra i processi.) ' –