如果在C裏面,c.startActivityForResult(D,0),然後在D finish()之前setResult(1),那麼在C的onActivityResult裏面是接收不到從D返回過來的返回碼1的,也就無法刷新界面了。
解決辦法是:
C啓動D:
1
2
|
Intent intent =
new Intent(C. this ,D. class ); getParent().startActivityForResult(intent, 0 ); |
然後在A中重寫onActivityResult:
1
2
3
4
5
6
7
8
9
|
@Override protected
void onActivityResult( int
requestCode, int
resultCode, Intent data) {
// TODO Auto-generated method stub
super .onActivityResult(requestCode, resultCode, data);
if (requestCode== 0 ){
C activity =(C)getLocalActivityManager().getCurrentActivity();
activity.handleActivityResult(requestCode, resultCode, data); //把收到的消息發送給發起請求的Activity C
} } |
最後在C中添加handleActivityResult方法
1
2
3
4
5
|
public
void handleActivityResult( int
requestCode, int
resultCode, Intent data){
if (resultCode ==
1 ){ //獲取返回碼,刷新界面
Log.i(TAG, "返回碼:"
resultCode);
} } |