【问题标题】:Refresh previous activity on back press在后按时刷新以前的活动
【发布时间】:2016-03-09 05:01:38
【问题描述】:

我有一个显示来自服务器的项目列表的活动。单击列表项时,我会打开另一个详细信息活动。在详细活动中,我正在对服务器进行一些更改。因此,当我按下后退按钮时,我想刷新上一个活动以确保我所做的更改得到反映。

这是我目前所做的:-

@Override
    protected void onRestart()
    {

        // TODO Auto-generated method stub
        super.onRestart();
        FetchItems fetchTask = new FetchItems();
        try {
            myFinalList = fetchTask.execute(registerContet).get();

            }
         catch (Exception e)
         {

            e.printStackTrace();
         }

    }

一切正常。但是当我按下后退按钮时,用户界面会冻结,并且不会立即返回上一个屏幕。 我该如何解决这个问题?

【问题讨论】:

标签: android android-listview refresh onbackpressed


【解决方案1】:
public void onRestart()
{
super.onRestart();
    finish();
    startActivity(getIntent());
    overridePendingTransition(0, 0);
}

【讨论】:

    【解决方案2】:

    当您开始详细活动时,请使用startActivityForResult。然后在您的详细活动中做任何您想做的工作并致电setResult() 和finish()。最后,回到您的第一个活动并覆盖onActivityResult() 获取您在完成()之前打包的任何数据并使用它来刷新您的列表。

    更多信息和示例可以在这里找到:

    【讨论】:

    • 问题是我在一个活动中得到一个列表,然后将该列表传递给一个片段,该片段在列表视图中显示它。我在片段中有 onclick 事件。所以 OnActivityResult 不做刷新
    • 如果您喜欢这种方法但使用的是片段,请查看stackoverflow.com/q/6751583/794088
    【解决方案3】:

    这听起来像是event bus like otta,greenDao 的完美用例, 但是,如果您不想使用那些,您可以将刷新状态标志放在意图中并将其传递给活动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-06
      • 1970-01-01
      • 2015-12-16
      • 1970-01-01
      相关资源
      最近更新 更多