2010-09-13 102 views
0

我有两个活动,说活动A和B.活动A是一个ListActivity,当列表中的项目被选中时,它会调用startActivity()来调出B.这里的问题是,当我在B并单击home键,然后转到应用程序启动器以恢复我的应用程序,A将再次启动。这次当我点击A中的一个不同的项目时,它会在主键被点击之前带上先前选择的项目的旧数据。如何在调用startActivity时更新现有活动的意图?

检查代码后,我发现startActivity没有更新B的意图。我在这里找到了一篇关于类似问题的文章,答案是覆盖onNewIntent。但是,我发现它不起作用,因为当我第二次调用startActivity时,这个方法永远不会被调用。我相信这是同一个实例,因为我已经打印出实例编号。有没有其他方法可以更新活动的意图?或者我需要一些其他设置来使onNewIntent被调用?我没有设置任何标志或启动模式,所以一切都是默认的。

+0

什么时候从意图更新UI数据? 'onCreate'或'onStart'? – st0le 2010-09-13 13:36:35

+0

请从onItemClick发布您的代码 – 2010-09-13 16:00:55

+0

我在onStart中更新我的用户界面。我正在为我的公司编写代码,因此无法在此处发布详细信息。但我可以给一些类似的代码 – user412759 2010-09-14 05:13:45

回答

0
protected void onListItemClick(ListView listView, View view, int position, long id) { 
    Intent intent = new Intent(this, B.class); 
    intent.putExtra(B.EXTRA, something); 
    startActivity(intent); 
} 
+0

我明白为什么。我的意图没有指定任何数据,类型,操作或类别。 Android会认为它与旧的意图是一样的,所以onNewIntent不会被调用。 – user412759 2010-09-14 10:01:39

相关问题