OnBackPressed同一活动的多个实例

时间:2015-06-08 08:53:03

标签: android android-activity

我正在使用自定义列表视图进行活动。在我的列表视图中,有两种类型的项目,具有不同的布局。在项目上有一个开关,当我关闭开关时,我转到活动A,当我打开开关时,我转到活动B.

这是我的代码:

 Switch enable = (Switch) rowView.findViewById(R.id.enable);
 enable.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if (isChecked) {
              Intent intentChange = new Intent(getContext(), ActivityA.class);
                        intentChange.putExtra(PROPERTY, "test1");
              ((Activity)getContext()).startActivityForResult(intentChange, 100);

                    } else {
                      Intent newIntent=newIntent(getContext(),ActivityB.class);
              ((Activity)getContext()).startActivityForResult(newIntent, 200);

                    }
                }
            });

在每项活动中,我都称之为:

Intent changedIntent=new Intent();
    changedLimitIntent.putExtra("changed",changed);
    changedLimitIntent.putExtra("changedDesc","desc);

    setResult(Activity.RESULT_OK,changedIntent);
    finish();

在我使用自定义适配器的活动中,我有以下代码:

  @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        if (requestCode == ActivityA.REQUEST_CODE) {
            ....
        } else if (requestCode == ActivityB.REQUEST_CODE) {
            .....
        }
    }
}

然而,当我从自定义列表视图的活动中收到活动A或活动B的结果时,这项工作对我来说没问题,当我单击后退按钮时,我是多少次有这个活动我等待结果来自背堆上的其他活动。我不知道问题是什么。我不喜欢多次参与其他活动的结果。

我希望我对自己的问题很清楚。

1 个答案:

答案 0 :(得分:1)

尝试此操作以启动新活动。希望它会对你有所帮助。

Activity_A.this.finish();
Intent intentSettings = new Intent(Activity_A.this, Activity_B.class);
intentSettings.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);   
startActivity(intentSettings);