1. 程式人生 > >利用融雲做異地登入提醒

利用融雲做異地登入提醒

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