0

代替Titel:バックグラウンドメモリがクリアされた後に再開すると、ListFragmentコンテンツは描画されません。

これを試して、ソースをここで確認できます。これは、 GoogleデモアプリのActionBarSherlockデモアプリバージョンです。

ListFragmentを開いて、他の場所(アプリを使用した高メモリ)に移動したとき。ActivityManagerは、「もう必要ありません...」というプロセスを強制終了します。ホームボタンを長押ししてアクティビティに戻ると、リストは再ロードされますが、「アプリケーションなし」と表示されます。

この動作の原因を見つけることができません。おそらく私は盲目です。おそらくそれはバグです。私はデバッグに時間を費やしました。私の意見では、アプリケーションはロードされていますが、何かが原因でアプリケーションが表示されません。

469行目に、いくつかのデバッグメッセージを追加しました。

        Log.d("onLoadFinished", data.get(0).getLabel());

上記の場合、ラベルは正しく記録されますが、リストの代わりに「アプリケーションなし」が表示されます。

誰かが私に、なぜこれが起こるのか、そしてそれを修正する方法を説明できますか?

4

1 に答える 1

2

この問題は、SearchViewCompat442行目に関連しているようです。

onQueryTextChangeフィルターを使用して空のアダプターでバックグラウンドトリガーでメモリが解放されたときにアプリを再開するとnull、ローダーがアダプターを更新しても、アイテムは表示されません。

解決策は

mAdapter.getFilter().filter(null);

後。mAdapter.setData(data);_onLoadFinished

これは互換性フレームワークのバグである可能性があります。ネイティブ実装はテストしていません。

于 2012-08-26T23:05:37.980 に答える