1

Loader フレームワークを使用するように Android の進行中のアプリをリファクタリングしています。データはすべて SQLite データベースに格納されているため、ContentProvider レイヤーではなく commonsware loaderex パッケージと SQLiteCursorLoader を使用しています。

SQLiteCursorLoader の insert(..)、update(..) などのメソッドには、void 戻り型があります。修正されたテーブル内の行の自動インクリメントされた行 ID である long を返すと、私の人生が楽になり、コードがきれいになります。

おそらくSQLiteCursorLoaderをハックしてこれを行うことができますが、現時点では設計上の理由があるのではないかと思いましたか? 行き詰まって大きな問題にぶつかった場合に備えて。

4

1 に答える 1

3

現時点でそうではない設計上の理由があるのだろうか?

もちろん。これらのメソッドは で実際の作業を行うAsyncTaskため、求める値を返すことはできません。

基礎となる SQLite API がそれをサポートしていると仮定して、これらの操作を実行し、それらの値を処理するために独自に行うことを歓迎しますAsyncTask(複数の行がある可能性があるため、更新から必要な値を取得できるとは思いません)。影響を受ける)。ロジックをトリガーしてデータベースを再クエリし、新しい を配信するにはonContentChanged()、自分で呼び出す必要があります。SQLiteCursorLoaderCursor

于 2013-05-14T13:11:08.807 に答える