在RongCloudEvent下找到onChanged方法
@Override public void onChanged(ConnectionStatus connectionStatus) { switch (connectionStatus){ case KICKED_OFFLINE_BY_OTHER_CLIENT://用户账户在其他设备登录,本机会被踢掉线 ActivityUtil.reLogout(IHealthActivity.INSTANCE); break; } }
public static void reLogout(final Activity activity) { final String userName = PreferenceUtils.getPreferLoginName(activity); PreferenceUtils.clearData(activity); deleteFilesByDirectory(new File("/data/data/" + activity.getPackageName() + "/shared_prefs")); PreferenceUtils.modifyStringValueInPreferences(activity, Preferences.LOGIN_USER, userName); //清楚webview缓存 CookieSyncManager.createInstance(activity); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.removeAllCookie(); IHealthClient.resetAsyncHttpClient(); activity.finish(); IHealthActivity.INSTANCE.finish(); final Intent intent = new Intent(activity, LoginActivity_.class); intent.putExtra("onRestar","onRestar"); activity.startActivity(intent); }实际上是调用注销的方法 如果帐号在别的设备中登录 清楚缓存后跳转至登录页面 简单提醒
Bundle bundle = this.getIntent().getExtras(); if (bundle != null) { String onRestar = bundle.getString("onRestar"); if (onRestar.equals("onRestar")){ showDialog(); } }
public void showDialog(){ final AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("提示"); builder.setMessage("您的帐号在异地登录,请重新登录"); builder.setInverseBackgroundForced(true); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(final DialogInterface dialog, final int which) { dialog.dismiss(); } }); builder.show(); }