其他活动调用另一个活动后,onActivityResult无法正常工作?

时间:2015-02-02 01:56:11

标签: android android-activity onactivityresult

当我使用startactivityforresult时遇到问题,我在这个问题上有两个条件

1. activity A -> activity B = onActivityResult in activity A called //success
2. activity A -> activity B -> Call Camera = onActivityResult called only in Activity B, activity A isn't called

我在活动A中使用此代码

 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
           if(resultCode != RESULT_CANCELED){
                 Bundle b = data.getExtras(); 
                 String data = b.getString("data");                      
             }
    }
活动B中的

   String fileName;
 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (resultCode == RESULT_OK) {
            selectedPath=getPath(data.getData());
            File source= new File(selectedPath);
            fileName=source.getName();                   
         }
    }
活动B中的

我有完成活动B的按钮,然后回调活动A并带来值fileName 这里是代码

button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
              Intent i = new Intent();
              i.putExtra("data", fileName);
              setResult(RESULT_OK,i);
              finish();
            }
});

我希望在活动B activity B之后activity A返回call camera intent的值(在案例2中)?

我是如何实现这一目标的?感谢。

2 个答案:

答案 0 :(得分:0)

您是否在活动B上调用了setResult(RESULT_OK)并在finish()之前将数据包装在intent中?

答案 1 :(得分:0)

调用相机后,onActivityResult()将调用activity B而非activity A,因为调用相机的活动是活动A.而只是覆盖onActivityResult()活动B并调用setResult()将结果传播到活动A.