差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
后一修订版 两侧同时换到之后的修订记录
start:200androidcleintintegration:30androidsdkbasics [2016/08/24 03:39]
liulij
start:200androidcleintintegration:30androidsdkbasics [2018/09/05 09:54]
127.0.0.1 外部编辑
行 16: 行 16:
 要求在 application 的 oncreate 方法中做初始化。 要求在 application 的 oncreate 方法中做初始化。
  
-<sxh java>+<code java>
 EMChat.getInstance().init(applicationContext);​ EMChat.getInstance().init(applicationContext);​
  
行 25: 行 25:
  */  */
 EMChat.getInstance().setDebugMode(true);//​在做打包混淆时,要关闭debug模式,避免消耗不必要的资源 EMChat.getInstance().setDebugMode(true);//​在做打包混淆时,要关闭debug模式,避免消耗不必要的资源
-</sxh>+</code>
  
  
 注:如果你的 APP 中有第三方的服务启动,请在初始化 SDK(''​EMChat.getInstance().init(applicationContext)''​)方法的前面添加以下相关代码(相应代码也可参考 Demo 的 application)。 注:如果你的 APP 中有第三方的服务启动,请在初始化 SDK(''​EMChat.getInstance().init(applicationContext)''​)方法的前面添加以下相关代码(相应代码也可参考 Demo 的 application)。
  
-<sxh java>+<code java>
 appContext = this; appContext = this;
 int pid = android.os.Process.myPid();​ int pid = android.os.Process.myPid();​
行 45: 行 45:
     return;     return;
 } }
-</sxh>+</code>
  
  
 如何获取 processAppName 请参考以下方法。 如何获取 processAppName 请参考以下方法。
  
-<sxh java>+<code java>
 private String getAppName(int pID) { private String getAppName(int pID) {
  String processName = null;  String processName = null;
行 74: 行 74:
  return processName;​  return processName;​
 } }
-</sxh>+</code>
  
  
行 87: 行 87:
  
  
-<sxh java>+<code java>
 new Thread(new Runnable() { new Thread(new Runnable() {
     public void run() {     public void run() {
行 107: 行 107:
    }    }
 }).start(); }).start();
-</sxh>+</code>
  
 ===== 登录 ===== ===== 登录 =====
行 120: 行 120:
 另外如果登录过,APP 长期在后台再进的时候也可能会导致加载到内存的群组和会话为空,可以在主页面的 oncreate 里也加上这两句代码,当然,更好的办法应该是放在程序的开屏页,可参考 Demo 的 SplashActivity。 另外如果登录过,APP 长期在后台再进的时候也可能会导致加载到内存的群组和会话为空,可以在主页面的 oncreate 里也加上这两句代码,当然,更好的办法应该是放在程序的开屏页,可参考 Demo 的 SplashActivity。
  
-<sxh java>+<code java>
 EMChatManager.getInstance().login(userName,​password,​new EMCallBack() {//回调 EMChatManager.getInstance().login(userName,​password,​new EMCallBack() {//回调
  @Override  @Override
行 143: 行 143:
  }  }
 }); });
-</sxh>+</code>
  
  
行 164: 行 164:
 当掉线时,Android SDK 会自动重连,无需进行任何操作。 当掉线时,Android SDK 会自动重连,无需进行任何操作。
  
-<sxh java>+<code java>
 //​注册一个监听连接状态的listener //​注册一个监听连接状态的listener
 EMChatManager.getInstance().addConnectionListener(new MyConnectionListener());​ EMChatManager.getInstance().addConnectionListener(new MyConnectionListener());​
行 194: 行 194:
  }  }
 } }
-</sxh>+</code>
  
  
 ===== 退出聊天登录 ===== ===== 退出聊天登录 =====
  
-<sxh java> +<code java> 
-EMChatManager.getInstance().logout();​//​此方法为同步方法 +//​此方法为同步方法 
-</sxh>+EMChatManager.getInstance().logout();​ 
 +</code>
  
-<sxh java>+<code java>
 //​此方法为异步方法 //​此方法为异步方法
 EMChatManager.getInstance().logout(new EMCallBack() { EMChatManager.getInstance().logout(new EMCallBack() {
行 225: 行 226:
  }  }
 }); });
-</sxh>+</code>
  
 ===== 注册监听 ===== ===== 注册监听 =====
行 233: 行 234:
 ==== 注册接收新消息的监听广播 ==== ==== 注册接收新消息的监听广播 ====
  
-<sxh java>+<code java>
 //​只有注册了广播才能接收到新消息,目前离线消息,在线消息都是走接收消息的广播(离线消息目前无法监听,在登录以后,接收消息广播会执行一次拿到所有的离线消息) //​只有注册了广播才能接收到新消息,目前离线消息,在线消息都是走接收消息的广播(离线消息目前无法监听,在登录以后,接收消息广播会执行一次拿到所有的离线消息)
 NewMessageBroadcastReceiver msgReceiver = new NewMessageBroadcastReceiver();​ NewMessageBroadcastReceiver msgReceiver = new NewMessageBroadcastReceiver();​
行 263: 行 264:
  }  }
 } }
-</sxh>+</code>
  
 ==== 注册接收 ack 回执消息的 BroadcastReceiver ==== ==== 注册接收 ack 回执消息的 BroadcastReceiver ====
  
-<sxh java>+<code java>
 EMChatManager.getInstance().getChatOptions().setRequireAck(flag) EMChatManager.getInstance().getChatOptions().setRequireAck(flag)
 //​如果用到已读的回执需要把这个flag设置成true //​如果用到已读的回执需要把这个flag设置成true
行 293: 行 294:
  }  }
 }; };
-</sxh>+</code>
  
  
 ==== 注册一个消息送达的 BroadcastReceiver(在聊天界面注册) ==== ==== 注册一个消息送达的 BroadcastReceiver(在聊天界面注册) ====
  
-<sxh java>+<code java>
 EMChatManager.getInstance().getChatOptions().setRequireDeliveryAck(flag) EMChatManager.getInstance().getChatOptions().setRequireDeliveryAck(flag)
 //​如果用到已发送的回执需要把这个flag设置成true //​如果用到已发送的回执需要把这个flag设置成true
行 326: 行 327:
  }  }
 }; };
-</sxh>+</code>
  
 ==== 监听联系人的变化等 ==== ==== 监听联系人的变化等 ====
  
-<sxh java>+<code java>
 EMContactManager.getInstance().setContactListener(new MyContactListener());​ EMContactManager.getInstance().setContactListener(new MyContactListener());​
  
行 365: 行 366:
  
 } }
-</sxh>+</code>
  
 ==== 注册一个监听连接状态的 listener ==== ==== 注册一个监听连接状态的 listener ====
行 373: 行 374:
  
  
-<sxh java>+<code java>
 //​注册一个监听连接状态的listener //​注册一个监听连接状态的listener
 EMChatManager.getInstance().addConnectionListener(new MyConnectionListener());​ EMChatManager.getInstance().addConnectionListener(new MyConnectionListener());​
行 402: 行 403:
  }  }
 } }
-</sxh>+</code>
  
  
 ==== 注册群聊相关的 listener ==== ==== 注册群聊相关的 listener ====
  
-<sxh java>+<code java>
 EMGroupManager.getInstance().addGroupChangeListener(new MyGroupChangeListener());​ EMGroupManager.getInstance().addGroupChangeListener(new MyGroupChangeListener());​
  
行 492: 行 493:
  
 } }
-</sxh>+</code>
  
  
 注:最后要通知 SDK,UI 已经初始化完毕,注册了相应的 receiver 和 listener,可以接受 broadcast 了。 注:最后要通知 SDK,UI 已经初始化完毕,注册了相应的 receiver 和 listener,可以接受 broadcast 了。
  
-<sxh java>​EMChat.getInstance().setAppInited();</​sxh>+<code java>​EMChat.getInstance().setAppInited();</​code>
  
 ==== 回调监听事件注册 ==== ==== 回调监听事件注册 ====
  
-<sxh java>​EMChatManager.getInstance().registerEventListener(new EMEventListener() {+<code java> 
 +EMChatManager.getInstance().registerEventListener(new EMEventListener() {
   
  @Override  @Override
行 542: 行 544:
  }  }
  }  }
-});</sxh>+}); 
 +</code>
  
 <​html><​font color="​red"​ size="​+1">​注:以上两种方式都可以执行相同的操作,但是广播和监听事件不可同时混用。</​font></​html>​ <​html><​font color="​red"​ size="​+1">​注:以上两种方式都可以执行相同的操作,但是广播和监听事件不可同时混用。</​font></​html>​
行 557: 行 560:
 </​WRAP>​ </​WRAP>​
 </​WRAP>​ </​WRAP>​
-