0

대체 제목 : ListFragment 백그라운드 메모리를 지운 후에 다시 시작할 때 내용이 그려지지 않습니다.FragmentActivity, AsyncTaskLoader, ListFragment가 재설정/다시 시작시로드/표시되지 않습니까?

can trysee the source hereGoogle Demo 앱의 ActionBarSherlock 데모 앱 버전입니다.

ListFragment를 열고 다른 응용 프로그램을 사용하여 높은 메모리로 이동할 때. ActivityManager가 "더 이상 원하지 않는 ..."프로세스를 종료합니다. 홈 버튼을 길게 눌러 Activity로 돌아 가면 목록이 다시로드되지만 "No Applications"가 나타납니다.

이 동작에 대한 원인을 찾을 수 없습니다. 아마 내가 장님 일 가능성이 있습니다. 내 의견으로는 애플리케이션을로드하는 데 시간을 할애했지만, 뭔가 표시되지 않도록했다.

Line 469에 일부 디버그 메시지가 추가되었습니다.

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

레이블은 위의 경우에 올바르게 기록되지만 목록 대신 "응용 프로그램 없음"이 표시됩니다.

누군가가 내게 설명 할 수 있습니까? 왜 이런 일이 일어나고 어떻게 해결할 수 있습니까?

답변

2

문제는 로더가 다음을 업데이트 필터 null와 빈 어댑터에 onQueryTextChange을 트리거 메모리가 배경에 출시되었을 때 라인 (442)

응용 프로그램을 다시 시작에 SearchViewCompat 관련이있을 것으로 보인다 어댑터를 사용하면 항목이 여전히 표시되지 않습니다.

workound는 onLoadFinishedmAdapter.setData(data);

mAdapter.getFilter().filter(null); 

를 호출하는 것입니다.

이것은 호환성 프레임 워크의 버그 일 수 있습니다. 기본 구현을 테스트하지 않았습니다.

+0

예 상자가 생성되기 전에 onQueryTextChange가 등록되기 때문에 상자가 빈 텍스트를 설정하고 메서드 -> 이상하게 나타납니다. – seb

관련 문제