返回上一个活动时的结果不一致

时间:2011-09-10 10:27:45

标签: java android android-activity

我有一个Android应用程序,有各种活动。

例如,有一个主屏幕和一个更新屏幕。

主屏幕是列表活动。

主屏幕上的按钮将带您进入从服务器更新数据库的更新屏幕。理论上,在更新后返回主屏幕时,应更改列表以反映刚刚完成的更新。

进入更新屏幕的代码如下:

Button synch = (Button) findViewById(R.id.synchButton);
    synch.setOnClickListener(new OnClickListener() {
        public void onClick(View viewParam) {
            Intent intent = new Intent(HomeScreen.this, SynchScreen.class);
            startActivity(intent);
        }
    });

以及更新后返回主屏幕的代码:

main_menu.setOnClickListener(new OnClickListener() {
        public void onClick(View viewParam) {
            finish();
        }
    });

列表是从onStart中运行的异步任务编译的,所以我的理解是onStart应该在我返回主屏幕时运行,因此始终显示列表的最新版本。

在我的模拟器上我总是得到更新列表,但是当我在手机上运行它时,列表永远不会更新,它会在我更新之前返回到屏幕状态。

任何想法?

感谢

凯文

3 个答案:

答案 0 :(得分:1)

查看Android文档的Activity lifecycle部分。更新视图的代码应该可以移动到onResume,因为Activity在启动新的时可能不会被杀死。

答案 1 :(得分:1)

Asynctask中输入用于启动onResume的代码。阅读与活动生命周期相关的文档。

答案 2 :(得分:1)

@Override
public void onResume() {
    super.onResume();
Apaptor.refreshListView(Vector);    
}