startActivityForResult 使用注意事项

来源:互联网 发布:生化危机剧情 知乎 编辑:程序博客网 时间:2024/06/05 04:18

startActivityForResult();这个方法主要用于两个Activity交互的场景。


QuestionDetailActivity.this调到QuestionReportActivity.class

Intent intent = new Intent(QuestionDetailActivity.this,QuestionReportActivity.class);intent.putExtra(CommonConstants.QUES_ID,quesId);startActivityForResult(intent,REPORT_REQUEST_CODE);

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {   super.onActivityResult(requestCode, resultCode, data);
   if(data != null){
   }
  if(resultCode == RESULT_OK){     ((OnTabActivityResultListener)myActivity).onTabResume();  } 
   data 如果用来取值,一定要判断是否为空,并且要要判断 是否要真的做一些业务操作,如用不到data,还可以根据resultCode值来确定是否要做处理,
如果是后者Activity单纯的back返回的话,理论上应该不用做任何处理,所有就要进行判断,不要引起不必要的消耗和异常。
 (可以根据requestCode,或者resultCode进行业务返回区分)
}
QuestionReportActivity中的返回代码。
Intent intent = new Intent();intent.putExtra(CommonConstants.REPORT_ID,reportId);
//setResult一定要在finish之前,并且要处理默认按键返回。按键返回默认会调用setResult(Activity.RESULT_CANCELED);setResult(Activity.RESULT_OK,intent);Util.closeKeyboard(context, mEtReason);finish(); 


0 0
原创粉丝点击