0

替代标题:在清除后台内存后恢复时,不会绘制 ListFragment 内容。

可以试试这个并在此处查看源代码,它是Google 演示应用程序的 ActionBarSherlock 演示应用程序版本。

当您打开 ListFragment 并转到其他(使用应用程序的高内存)时。ActivityManager 将终止进程“不再需要......”如果您通过长时间按住 Home 按钮返回 Activity,则列表将重新加载,但随后出现“无应用程序”。

我找不到导致这种行为的任何原因,也许我是盲人,也许这是一个错误。我花了一些时间调试,在我看来应用程序已加载,但随后某些东西阻止它们显示。

第 469 行,我添加了一些调试消息。

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

在上述情况下,标签已正确记录,但出现“无应用程序”而不是列表。

有人可以向我解释一下,为什么会发生这种情况以及如何解决它?

4

1 回答 1

2

该问题似乎与SearchViewCompat第 442 行有关。

当应用程序的内存在后台释放时恢复应用程序会触发onQueryTextChange带有过滤器的空适配器null,当加载器然后更新适配器时,项目仍然不会显示。

一种解决方法是打电话

mAdapter.getFilter().filter(null);

mAdapter.setData(data);在之后onLoadFinished

这可能是兼容性框架中的一个错误,我没有测试本机实现。

于 2012-08-26T23:05:37.980 回答