2010-04-16 34 views
1

在我的android应用程序中,我有一个带ListView的Tabhost作为其中一个选项卡。通过点击ListView中的一个项目(一个地址),我启动一个Google地图的Intent以获取路线,并且弹出Google Maps,Web浏览器等选项对话框。问题是,如果我按下后退按钮,然后启动对话框消失而且ListView被清除。任何想法为什么?Android ListView在按下后退键时清除

+0

这里的信息不足以诊断。您应该发布涉及您的listView和/或适配器的代码 – jqpubliq 2010-04-16 22:58:37

回答

2

调用者活动正在“暂停”,并在恢复时onCreate被调用以让您“恢复”。您可以通过覆盖onSaveInstanceState来保存持久数据,并通过设置extras来传递数据。然后检查传递到onCreate的包中的这些额外内容,并执行所需的任何必要操作以实现功能恢复。

对于复杂的对象,您可以对它们进行序列化(如果需要,可以实现Serializable),然后在onSaveInstanceState期间将它们作为临时套件存储在套件中。

+1

仅当设备非常需要内存时才会释放暂停的活动。即便如此,因为它会比其他活动具有更高的优先级,因为它仍然是部分可见的,所以完全后台应用程序应该先放在第一位。这可能只是通过onResume() – jqpubliq 2010-04-16 22:57:36

+0

只调用onResume。在onResume中,我调用processResults(results),但是在processResults(results)中,当this.results是传入的列表时,我调用this.results.clear()。只需要执行processResults(new ArrayList(results))在onResume。 – 2010-04-17 03:04:52

相关问题