startActivityForResult 使用注意事项

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(); 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值