ayrascal

Android利用融云做异地登录提醒

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

 

 

posted on 2017-03-03 16:43  ayrascal  阅读(969)  评论(0)    收藏  举报

导航