使用Intents进行活动转换?

时间:2012-01-21 19:33:46

标签: android android-activity android-intent

活动过渡就像这样

A -----------> B(startActivity

B -----------> C(startActivityOnResult

当我在C中设置Result in Activity并执行finish()时,我被重定向到活动A?

有人可以帮助我吗?

编辑: A -------- B

startActivity(new intent(uri,Search.class)`

B -------- C

Intent intent = new Intent(this,ContactsPicker.class);
intent.putExtra("Mode", 2);
startActivityForResult(intent,ContactsPicker.RECENT_CONTACTS);

在Activty C中:

Intent returnIntent = new Intent();
returnIntent.putExtra("contactlist",str.toString());
setResult(RESULT_OK,returnIntent);  
finish();

1 个答案:

答案 0 :(得分:0)

  1. 在调用活动B时,在您的父活动A中使用startActivityForResult()方法。
  2. 覆盖子活动B和C中的onStop()onDestory()方法,并设置任意结果代码,例如“2”。您可以通过以下方式执行此操作:

    protected void onStop() {
      // TODO Auto-generated method stub
      setResult(2);
      super.onStop();
    }
    @Override
    protected void onDestroy() {
      // TODO Auto-generated method stub
      setResult(2);
      super.onDestroy();
    }
    
  3. 覆盖活动A和B中的onActivityResult()方法,并根据结果代码完成活动。您可以通过以下方式执行此操作:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      if(resultCode==2){
      finish();
      }
    }
    
  4. 这应该在活动C结束时完成所有活动。