startActivityForResult 使用注意事项

android 专栏收录该内容
12 篇文章 0 订阅

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
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

xingCome

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值