startActivityForResult与onActivityResult的应用。

说明:从A Activity跳转到B Activity的时候调用的是startActivityForResult方法。则当B Activity销毁后,会进入到A Activity的onActivityResult方法中,在此方法中可以做相应的处理。  
onActivityResult(int requestCode, int resultCode, Intent data)
1)其中requestCode值,可以在使用startActivityForResult方法时就设置好,例如
Intent intent = new Intent();
intent.setClass(LobbyActivity.this,
RoomActivity.class);
startActivityForResult(intent,
REQUEST_ROOM_ACTIVITY);


其中REQUEST_ROOM_ACTIVITY就是在A Activity使用startActivityForResult方法时传入的参数,是自定义的一个值。
2)其中resultCode值,是在B Activity销毁时传入的。例如:
Intent intent=new Intent();
intent.putExtra(KEY_USER_ID, et01.getText().toString());
intent.putExtra(KEY_USER_PASSWORD, et02.getText().toString());
       setResult(RESULT_OK, intent);
       finish();
RESULT_OK是父类Activity的一个常量值,setResult()方法也是父类Activity的一个方法。
3)其中data是B Activity销毁时,传入的一个Intent  例子已在2)中给出。
PS: 在麻将项目中使用到这个方法,缘由是为了解决 快速开始游戏 ,之后退出游戏而引起的问题。 
  例如,在大厅界面(选房间用的),点击快速开始游戏,我们直接进入到游戏的界面。当我们游戏结束,退出时,我们需要给服务器发送,退出桌位 的消息,还要发送 退出房间的 消息。如果全部写在GameActivity的onDestroy中,则会引起错误,因为有时候,玩家是从 选桌界面 进入的游戏,退出来后只需要 向服务器发送 退出桌位的消息,退出房间的消息就不用发送。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值