刷新后退按钮上的活动

时间:2015-09-30 07:42:57

标签: android android-intent android-activity

我有一个活动A,它有一个feed类接口。每个Feed项都有一个文本,表示该项目的评论数量。现在,如果在该项目上,我点击评论并转到新活动B,通过活动B添加评论并按回以返回活动A.当我添加评论时,信息将反映在后端。但问题是,当我按下时,保存的活动A实例显示注释数量未更新,因为没有从活动A调用后端。

做这样的事情的标准方法是什么?在按下某些活动时,我应该如何刷新活动堆栈中的上一个屏幕?

以下是一些相关的代码段:

$challenge = $obj['object']['property']

5 个答案:

答案 0 :(得分:5)

在活动A中启动活动A时调用onPause()。在活动B中调用后退按钮后,在活动A中调用onResume()。

您应该在onResume函数中加载注释(api / server call)而不是活动A的onCreate函数,以便每次恢复活动时都会刷新注释。

答案 1 :(得分:2)

您可以使用

开始“结果”的活动B'
int activityBrequestCode = 0; 
startActivityForResult(intent, activityBrequestCode);

并在活动B中使用

按下后退按钮时设置结果
@Override
public void onBackPressed() {

   setResult(RESULT_OK);

   super.onBackPressed();
}

然后将在

中通知您的活动A.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == activityBRequestCode && resultCode == RESULT_OK){
        // refresh
    }
}

答案 2 :(得分:2)

从活动生命周期中可以看出,执行此操作的理想位置是onRestart()回调方法:

  @Override
    protected void onRestart() {
        super.onRestart();
        // this is your backendcall
        backendCall();
    }

Activity Lifecycle

答案 3 :(得分:1)

我认为您应该从后端获取该Feed的评论数量并保存到变量并通过意图传递,然后您可以将其放在该Feed的总评论中。

Bcoz意图是跨活动发送数据的最快方式

答案 4 :(得分:1)

尝试以下,

@Override
public void onRestart() { 
    super.onRestart();
    //When BACK BUTTON is pressed, the activity on the stack is restarted
    //Do what you want on the refresh procedure here
}