从活动回到其他活动时片段可见

时间:2018-03-16 16:34:18

标签: java android

我有两个活动A和B.一个主机2片段A和B.我做的是从这个片段A,我开始活动B,在完成后我去活动A和 打开片段B.在进入活动A时,我看到片段A暂时不应该发生。这是我的代码 -

来自片段A -

Intent intent = new Intent(getActivity(), B.class);
intent.putExtra("hi, "bye);
getActivity().startActivityForResult(intent, "performaAction");

在活动B中 -

Intent i = new Intent();
i.putExtra("data", data);
setResult(resultId, i);
finish();

现在我去活动A,在活动A中,我打开片段B.在这个过程中,我看到片段A一段时间我不想要

在活动A中 -

@Override
    public void onActivityResult(int requestCode, int resultCode, final Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        switch (resultCode) {
            case resultId:
                new Handler().post(new Runnable() {
                    public void run() {
                        openFragmentB(); //Fragment transition
                    }
                });
                break;
           default:
                break;
        }
    }

1 个答案:

答案 0 :(得分:1)

只需删除Handler部分:

@Override
public void onActivityResult(int requestCode, int resultCode, final Intent data) {

    switch (resultCode) {
        case resultId:
            openFragmentB(); //Fragment transition
            break;
       default:
            super.onActivityResult(requestCode, resultCode, data);
    }
}

说明:

您所看到的是由于您打电话切换片段"将来的某个时间",使用:

new Handler().post(new Runnable() {
  public void run() {
    openFragmentB();
  }
});

这意味着,一旦完成了当前已经在同一个线程上执行的操作队列,您的系统就会打开该片段。

没有理由像这样切换片段,当前线程已经让你通过调用onActivityResult中的代码来控制当时和那里发生的事情。