ローダーを使用してデータベースから(多くの)データをロードするフラグメントが与えられています。Android Fragment - Fragmentの代わりにアクティビティのloadermanagerを使用します。大丈夫ですか?
問題:
私は、ユーザーがそれを保持しているタブから離れると、ユーザーが戻ってそのタブになったときに、それを再作成するときの断片を破壊するページャアダプタを持っています。このレクリエーションにより、毎回新しいローダが作成され、毎回データがロードされます。
質問:
フラグメントが作成されるたびローダーを再作成回避するためには、フラグメントのonActivityCreated
方法でgetActivity.getSupportLoaderManager.initLoader(loaderId, null, false)
を使用しても大丈夫でしょうか?
私はそれを試して、それをテストし、それは正常に動作しているようです。しかし、私はそれが正しいと確信していない。
この方法では問題はありません。フラグメントごとに一意のIDを使用していることを確認してください(同じローダーを再利用しない限り) –
IDが一意であることを確認しました。それは正しいとは思わない。ローダーが作成されると、フラグメントがコールバックとして登録され、システムがフラグメントを破壊した場合、ローダーはデータを再ロードし、 'onLoadFinished()'メソッドを呼び出そうとしますか? – 500865
'onLoadFinished'がアクティビティで呼び出され、これはフラグメントを検索する必要があります。そこに存在する可能性もあります(この場合は、結果を無視します)。とにかく、私は今、適切な答えを残しました。 –