解决方案 »

  1.   

    object是普通类型可以用Bundle data=new Bundle();
    data.putStringArray(key, value[]);
    data.putIntegerArray(key, value[]);

    message.setData(data);
    复杂的话可以让Object实现Parcelable用data.putParcelableArray(key, Object[])
      

  2.   

    同意楼上.可使用bundle传值.
    另外,你的写法:
    msg.obj = (Object)uris; (uris是数组类型)
    Uri[ ]  uris = (Uri[ ]) msg.obj;为什么要把它转成object?不需要.你放的object,取的时候怎么可能强转成另一个类型呢?
    传过去了,你再给它强转成Uri[].
      

  3.   

    那么令我奇怪的是:
    msg.obj = (Object)uris;
    msg.obj = (Object[ ])uris;
    msg.obj = uris;
    3种写法在Eclipse里都不会报错,那么这里的上转型如果正确是都正确吗?
    还是Eclipse在这种情况下不能检测出这种错误呢?
      

  4.   

    经过测试,我已经确定Message的obj可以放置一个对象或者一个对象数组,这里确实比较奇怪,但是使用是正常的!
      

  5.   

    uris只是一个数组存的是数组的起始地址,你对它转成Object再转回来应该还是一个数组起始地址,
    int[] tt=null;
    msg.obj=new int[]{1,2,3};
    tt=(int[]) msg.obj;
    Log.d("xxx", tt[0]+"---"+tt[1]+"--"+tt[2]);
    打印正常的1---2--3