还是偶然间遇到了这个问题的,我把一个handler里得到的msg作为参数,传给一个要在另一个handler里响应的函数时,发现这个msg的replyto以及arg1都变空了..
我下边还是写一下浓缩代码的好:
Handler handler1=new Handler(){
handleMessage(msg){
Func(msg);
}
};
void Func( Message msg){
Object.innerFunc(new Handler(){
handleMessage(innerMsg){
switch(innerMsg.what){
case FINISH:
CallBack(msg);
break;
}
}
}
);
void CallBack(msg){
Log.i("msg.what",""+msg.what);
Log.i("msg.arg1",""+msg.arg1);
if(msg.replyTo==null){
Log.i("msg.replyTo","null");
}else {
Log.i("msg.replyTo","not null");
}
};
出现的状况是:在最开始的那个handler里,msg的arg1与replyTo 并不为空,但是进入Func()的innerFunc()的参数handler之后,replyTo变成空了就,而arg1默认变为了1。我想知道这是为什么?在此没空探索解答,先备份一下在这里吧。