これはちょっと変わった問題です。AsyncTaskLoader (互換性レベルではなく API レベル 11 をターゲットとする実際の取引) を拡張するクラスを使用して、別のアプリ コンポーネントから送信されたインテントを受信し、ローカル データベースからデータをダウンロードして応答します。メイン アクティビティの onStart メソッドで LoaderManager を使用してローダーを初期化します。
最初に起動したとき、ローダーは正常に動作します。以下は、発生する一連のイベントです。 Activity.onCreateLoader - ローダー コンストラクター - Loader.onStartLoading - Loader.loadInBackground - Activity.onLoadFinished - Loader.deliverResult
ただし、アクティビティを終了して再起動を繰り返すと、最終的には期待どおりに動作しなくなります。これは次のシーケンスになります: Activity.onCreateLoader - ローダー コンストラクター - Loader.onStartLoading - 何もない
Loader.onStartLoading 内に forceLoad の呼び出しがありますが、後者の場合は何もしていないようです。私が検索したすべての場所は、forceLoad を呼び出すことは、ローダーがその作業を開始するための防弾に近い方法であると言っているようですが、単に何もしないケースに遭遇し続けています。ローダーのプロパティは、いずれの場合も同じです (isStarted、isAbandoned、および isReset は関係なく同じ結果になります)。率直に言って、ローダーが正常に動作する場合と何もロードされない場合とで、ローダーに違いは見られませんでした。