私はDBを照会するためにCursorLoaderを使用する主なアクティビティAを持っています。この私が活動のonCreate()メソッドで作成した:CursorLoader onLoaderReset()がデバイスローテーション後に呼び出されるのはなぜですか?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
getSupportLoaderManager().initLoader(LOADER_MEASUREMENTS, null, A.this);
}
アクティビティAはまたCursorLoader 3つのコールバックを実装します。私は、デバイスを回転させる場合
public Loader<Cursor> onCreateLoader(int loaderId, Bundle args)
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor)
public void onLoaderReset(Loader<Cursor> loader)
は、私が実行正しいライフサイクル・メソッドを参照してください。
A.onPause()
A.onStop()
A.onDestroy()
A.onCreate() <-- re-connect to existing loader, onCreateLoader() not called
A.onLoadFinished()
A.onStart()
A.onResume()
次に、サブアクティビティBを開き、デバイスを回転させます。私はBを終えるとアクティビティAに戻ったとき、私は次の実行を参照してください。私は活動Bが開いていたし、デバイスの回転をしたので
B.onPause()
A.onLoaderReset() <- why does this run?
A.onDestroy()
A.onCreate()
A.onCreateLoader() <- now runs as loader is null
A.onStart()
...
をなぜローダリセットされますか?そのアクティビティBは、DBまたはCursorLoaderとは関係がないことを追加するだけです。
[この質問](http://stackoverflow.com/questions/15897547/loader-unable-to-retain-itself-during-certain-configuration-change?lq=1)とそこに関連する質問があります。おそらくあなたが助けてくれるものを見つけることができます。 –
Georgeさん、ありがとうございます。その質問は私が持っている問題とまったく同じです。サポートローダーマネージャーのようだと思われます。 – MickeyR
[link](https://code.google.com/p/android/issues/detail?id=183783)には、これはv24で修正される予定です。 – MickeyR