聊天室获取房间信息和房间内在线人数方法调用 无结果返回

thb 2021-9-16 543

1.@Override public void getChatRoomMembersInfo(java.lang.String chatRoomId, int maxCount, 2.cn.wildfirechat.client.IGetChatRoomMembersInfoCallback callback) throws android.os.RemoteException

3.{

4. android.os.Parcel _data = android.os.Parcel.obtain();

5.try {

6.    _data.writeInterfaceToken(DESCRIPTOR);

7.    _data.writeString(chatRoomId);

8.    _data.writeInt(maxCount);

9.    _data.writeStrongBinder((((callback!=null))?(callback.asBinder()):(null)));

10.    boolean _status = mRemote.transact(Stub.TRANSACTION_getChatRoomMembersInfo, _data, null, 11.android.os.IBinder.FLAG_ONEWAY);

12.   if (!_status && getDefaultImpl() != null) {

13.      getDefaultImpl().getChatRoomMembersInfo(chatRoomId, maxCount, callback);

14.      return;    }  }  finally {    _data.recycle();  }} 

跟踪代码发现 ,走到第10行之后,status返回为true,导致13行的代码根本不会执行,看看什么原因呢,getChatRoomInfo()方法也是类似的效果

最新回复 (1)
  • x86 2021-9-16
    引用 2
    这个是跨进程的原因。

    可以这么调试:
    1. 主进程,在ChatManager#getChatRoomMembersInfo里面打断点,或者加日志,看下callback里面是否有返回。
    2. marsservice进程,在ClientService#getChatRoomMembersInfo里面打断点或者加日志,看看是否有返回。

返回