在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();
}