当用户选择后退按钮时,阻止活动保存状态

时间:2010-05-02 22:37:06

标签: android android-activity

我有一个Activity,其列表绑定到ListAdapter,将数据从数据库读入ArrayList。首次加载数据时,一切都很顺利。当Activity打开并且正在显示列表时,数据库中的数据可能会被服务更新,但列表不会反映更改,因为ArrayList不知道更改。如果Activity不再处于前台,如果用户进入主屏幕然后返回到前台,我希望Activity不显示它之前做的事情,而是使用ListAdapter视图绑定。我觉得有些东西需要调用finish(),但我不确定是什么。这就是我在活动中所拥有的。

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setUpViews();
app = (MyApplication) getApplication();
adapter = new MyListAdapter(this, app.getMyEvents());
setListAdapter(adapter);
}
@Override
protected void onResume() {
super.onResume();
adapter.forceReload();
}

1 个答案:

答案 0 :(得分:2)

  

我有一个列表的活动   绑定到ListAdapter读取数据   从数据库到ArrayList。

为什么不使用CursorAdapter而不是将所有内容都读入ArrayAdapter

  

活动开放时   正在显示列表是可能的   并且很可能是数据中的   数据库将由服务更新   但清单并没有反映出来   更改,因为ArrayList没有   知道这些变化。

如果您使用了CursorAdapter,则可以在requery()上调用Cursor,您的列表将使用数据库的最新内容进行更新。例如,您可以在onStart()中执行此操作,只要用户返回活动 - 从主屏幕,他们接听的来电等等,它就会被触发。