71MainActivity中连接的监听
来源:互联网 发布:超级英雄淘宝购买礼包 编辑:程序博客网 时间:2024/06/10 18:51
创建一个内部类,实现EMConnectionListener接口,该接口实现了两个方法,一个是连接上的方法,在该方法中,去掉网络断开的可见,在连接不上的方法中,做出相应的处理。
/** * 连接监听listener * */ private class MyConnectionListener implements EMConnectionListener { @Override public void onConnected() { runOnUiThread(new Runnable() { @Override public void run() { chatHistoryFragment.errorItem.setVisibility(View.GONE); } }); } @Override public void onDisconnected(final int error) { runOnUiThread(new Runnable() { @Override public void run() { if (error == EMError.USER_REMOVED) { // 显示帐号已经被移除 showAccountRemovedDialog(); } else if (error == EMError.CONNECTION_CONFLICT) { // 显示帐号在其他设备登陆dialog showConflictDialog(); } else { chatHistoryFragment.errorItem .setVisibility(View.VISIBLE); if (NetUtils.hasNetwork(MainActivity.this)) chatHistoryFragment.errorText.setText("连接不到聊天服务器"); else chatHistoryFragment.errorText .setText("当前网络不可用,请检查网络设置"); } } }); } }
剩下的两个方法:
/** * 显示帐号在别处登录dialog */ private void showConflictDialog() { isConflictDialogShow = true; IMApplication.getInstance().logout(null); if (!MainActivity.this.isFinishing()) { // clear up global variables try { if (conflictBuilder == null) conflictBuilder = new android.app.AlertDialog.Builder( MainActivity.this); conflictBuilder.setTitle("下线通知"); conflictBuilder.setMessage(R.string.connect_conflict); conflictBuilder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); conflictBuilder = null; finish(); startActivity(new Intent(MainActivity.this, LoginActivity.class)); } }); conflictBuilder.setCancelable(false); conflictBuilder.create().show(); isConflict = true; } catch (Exception e) { EMLog.e(TAG, "---------color conflictBuilder error" + e.getMessage()); } } } /** * 帐号被移除的dialog */ private void showAccountRemovedDialog() { isAccountRemovedDialogShow = true; IMApplication.getInstance().logout(null); if (!MainActivity.this.isFinishing()) { // clear up global variables try { if (accountRemovedBuilder == null) accountRemovedBuilder = new android.app.AlertDialog.Builder( MainActivity.this); accountRemovedBuilder.setTitle("移除通知"); accountRemovedBuilder.setMessage(R.string.em_user_remove); accountRemovedBuilder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); accountRemovedBuilder = null; finish(); startActivity(new Intent(MainActivity.this, LoginActivity.class)); } }); accountRemovedBuilder.setCancelable(false); accountRemovedBuilder.create().show(); isCurrentAccountRemoved = true; } catch (Exception e) { EMLog.e(TAG, "---------color userRemovedBuilder error" + e.getMessage()); } } }
0 0
- 71MainActivity中连接的监听
- 72MainActivity中群聊的监听
- android studio中MainActivity的R找不到
- Android中监听判断网络连接状态的方法
- Android中监听判断网络连接状态的方法
- kernel中套接字的绑定、监听、连接和断开
- 70MainActivity注册监听联系人变化
- android 中this与MainActivity.this的区别
- 在MainActivity 中,获取控件的宽 高
- Android中MainActivity.this和this的区别
- 在MainActivity中调用另外一个布局控件的方法
- MainActivity
- mainActivity
- MainActivity
- MainActivity
- MainActivity
- MainActivity
- MainActivity
- rhel7.0安装图形桌面
- 浏览器兼容性改革
- 转MSDN里的CWnd::OnHScroll
- android -- 模块 android手机旋转屏幕时让GridView的列数与列宽度自适应
- Mac命令大全
- 71MainActivity中连接的监听
- VB自定义函数加 ""和 "";
- 两款齐发 魅蓝Note月底发电信版
- 日期时间
- JS三元运算符
- Python条件语句和运算符
- ios消息推送全面解析和push证书的生成
- moodle的中文日历乱码问题
- CFtpConnection::GetFile()下载FTP服务器文件及相关参数说明