最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android端“被擠下線”功能的單點登錄實現(xiàn)

 更新時間:2017年11月09日 16:13:26   作者:sun_____xin  
本篇文章主要介紹了Android端“被擠下線”功能的單點登錄實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

單點登錄(被擠下線)

所謂的被擠下線功能,即一個賬號在A客戶端保持登陸狀態(tài),然后又在B客戶端進行了登陸操作,那么A客戶端就會被擠下線。

服務端需要返回Token,每次在app登錄時為app分配一個新的token,如果在某次請求中app傳遞token不是最新的,則視為需要重新登錄,在token失效的情況下,返回約定好的code

App如何知道該賬戶已經在其他設備上登陸了呢?有三種實現(xiàn)方式

  1. api請求中后臺返回特定的code。缺點是需要下次請求才知道被踢下線
  2. 使用推送。后臺可以推送給APP,從而使APP得知已在其他地方登陸,可以及時響應。
  3. 使用第三方的監(jiān)聽器。比如集成了環(huán)信,環(huán)信自身有提供連接狀態(tài)的接聽,通過監(jiān)聽環(huán)信的用戶狀態(tài),從而達到監(jiān)聽app自身用戶系統(tǒng)的效果

我們的項目中集成了環(huán)信的即時聊天,所以就使用了環(huán)信的監(jiān)聽器監(jiān)聽用戶狀態(tài),用來判斷是否已在其他地方登陸,實現(xiàn)擠下線功能。

1、首先在初始化環(huán)信的時候設置一個全局的監(jiān)聽器里面注冊一個連接監(jiān)聽。

// 注冊連接監(jiān)聽
EMChatManager.getInstance().addConnectionListener(connectionListener);

2、實現(xiàn)這個連接監(jiān)聽,的那個檢測到連接斷開的時候判斷是用戶被移除還是連接沖突即賬號在其他地方登陸,做出相應的操作。

// create the global connection listener
connectionListener = new EMConnectionListener() {
  @Override
  public void onDisconnected(int error) {
    if (error == EMError.USER_REMOVED) {
      onCurrentAccountRemoved();
    } else if (error == EMError.CONNECTION_CONFLICT) {
      onConnectionConflict();
    }
  }

  @Override
  public void onConnected() {
    // in case group and contact were already synced, we supposed to
    // notify sdk we are ready to receive the events
  }
};

3、我們只關心賬號在別處登陸,這個時候,我們一般要跳轉到MainActivity,然后強制彈出對話框提示用戶重新登陸。

/**
* 賬號在別的設備登錄
*/
protected void onConnectionConflict() {
  Intent intent = new Intent(appContext, MainActivity.class);
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  intent.putExtra(Constant.ACCOUNT_CONFLICT, true);
  appContext.startActivity(intent);
}

這個地方檢測到登陸沖突之后需要回到MainActivity,并為MainActivity攜帶了一個標識和一個標記位Intent.FLAG_ACTIVITY_NEW_TASK,表示在一個新的task中開啟一個Activity,如果包含這個Activity的task已經在運行,那么這個Activity就回到前臺顯示。然后回調onNewIntent()方法處理這個Intent。

4、回到MainActivity中的onNewIntent方法

@Override
protected void onNewIntent(Intent intent) {
  super.onNewIntent(intent);
  if (intent.getBooleanExtra(Constant.ACCOUNT_CONFLICT, false) && !isConflictDialogShow) {
    showConflictDialog();
  } else if (intent.getBooleanExtra(Constant.ACCOUNT_REMOVED, false)
      && !isAccountRemovedDialogShow) {
    showAccountRemovedDialog();
  }
}

首先會判斷標識,如果是賬戶沖突就會彈出對話框提示用戶跳轉登陸頁面重新登陸。另外這個對話框是不能取消也不可關閉的。

這樣被擠下線功能就基本實現(xiàn)了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android 桌面Widget開發(fā)要點解析(時間日期Widget)

    Android 桌面Widget開發(fā)要點解析(時間日期Widget)

    總的來說,widget主要功能就是顯示一些信息。我們今天編寫一個很簡單的作為widget,顯示時間、日期、星期幾等信息。需要顯示時間信息,那就需要實時更新,一秒或者一分鐘更新一次
    2013-07-07
  • Andriod事件分發(fā)事件由來初識

    Andriod事件分發(fā)事件由來初識

    這篇文章主要為大家講解了Andriod事件分發(fā)事件由來的初步認識,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Android布局之絕對布局AbsoluteLayout詳解

    Android布局之絕對布局AbsoluteLayout詳解

    這篇文章主要為大家詳細介紹了Android布局之絕對布局AbsoluteLayout的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Android中socketpair雙向通信詳解

    Android中socketpair雙向通信詳解

    這篇文章主要為大家詳細介紹了Android socketpair雙向通信的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Android開發(fā)中Widget的生命周期實例分析

    Android開發(fā)中Widget的生命周期實例分析

    這篇文章主要介紹了Android開發(fā)中Widget的生命周期,結合實例形式分析了Android開發(fā)中Widget生命周期所涉及的常用方法與使用技巧,代碼備有詳盡的注釋便于理解,需要的朋友可以參考下
    2016-02-02
  • Android使用相機實現(xiàn)拍照存儲及展示功能詳解

    Android使用相機實現(xiàn)拍照存儲及展示功能詳解

    這篇文章主要介紹了Android使用相機實現(xiàn)拍照存儲及展示功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • Android讀寫文件工具類詳解

    Android讀寫文件工具類詳解

    這篇文章主要為大家詳細介紹了Android讀寫文件工具類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Android通過Handler與AsyncTask兩種方式動態(tài)更新ListView(附源碼)

    Android通過Handler與AsyncTask兩種方式動態(tài)更新ListView(附源碼)

    這篇文章主要介紹了Android通過Handler與AsyncTask兩種方式動態(tài)更新ListView的方法,結合實例形式分析了ListView動態(tài)更新的常用技巧,并附上完整實例源碼供讀者下載,需要的朋友可以參考下
    2015-12-12
  • Android數(shù)字華容道小游戲開發(fā)

    Android數(shù)字華容道小游戲開發(fā)

    這篇文章主要為大家詳細介紹了Android數(shù)字華容道小游戲開發(fā)的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Android 吸入動畫效果實現(xiàn)分解

    Android 吸入動畫效果實現(xiàn)分解

    如何在Android上面實現(xiàn)一個類似的效果。先看看我實現(xiàn)的效果圖,我們利用了Canvas.drawBitmapMesh()方法,具體實現(xiàn)代碼如下,感興趣的朋友可以參考下哈
    2013-06-06

最新評論

佛冈县| 聊城市| 综艺| 运城市| 桑植县| 宁强县| 乳山市| 邹城市| 宣汉县| 开平市| 新巴尔虎右旗| 富源县| 班玛县| 岑溪市| 凤山县| 河津市| 钦州市| 慈利县| 焦作市| 文安县| 封丘县| 海伦市| 海晏县| 兴和县| 丹寨县| 句容市| 婺源县| 娱乐| 加查县| 莆田市| 琼结县| 灵璧县| 雷波县| 南溪县| 罗定市| 宿迁市| 色达县| 灵台县| 五台县| 古交市| 甘洛县|