2014-10-07 244 views
0

我对处理程序a Message有疑问。任何人都知道如何从消息中撤回数据?目前,我有一个名为的handleMessage处理消息

@Override 
public void handleMessage(Message message) { 

Bundle bundle = message.getData(); 
String text = message.obtain().toString(); 

如果我运行调试模式的方法,该消息包含: enter image description here

我想获得的对象(意思是“www.google.com”)和把它作为一个字符串。任何人都知道如何得到它?我试过message.obtain.toString,它不成功。

由于

+1

试着用'message.getData()获得( “文字”);'或'message.toString( );'如果其中任何一个有效。 – 2014-10-07 10:01:09

+0

你的message.obj是一个'Result'对象,所以你应该将它转换为'Result'并且访问'text'字段 – pskink 2014-10-07 10:05:06

回答

1

Message.obtain()返回从池中一个空消息。你正在寻找的是obj

String text = (String) message.obj; 

message.objObject,所以它必须被浇铸成苛求型

+0

这几乎是正确的:) – eng 2014-10-09 05:34:26

0

数据设置为Message.obj第一,那么你可以从OBJ。

-1

要在消息中设置数据

 Message msg = new Message(); 
     msg.obj = "do"; 
     msg.what = 1; 
     handler.sendMessage(msg); 

从信息获取数据

Handler handler = new Handler(new Handler.Callback() { 
    @Override 
    public boolean handleMessage(Message message) { 
     if(message.what == 1){ 
      String value = (String) message.obj; 
      } 
     } 
     return false; 
    } 
}); 
+0

为什么要downvote? – Prachi 2014-10-07 12:42:48