关闭

startActivityForResult 使用注意事项

625人阅读 评论(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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16029次
    • 积分:318
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:0篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论