2016-11-26 80 views
0

我一直在想辦法做到這一點,但目前還找不到方法。我希望我的用戶能夠看到其他每個人的在線/離線狀態,就像在許多社交網絡中一樣。例如,每個用戶的布爾值。 True表示聯機,false表示脫機。但是,我何時將該布爾值設置爲false?用戶關閉應用程序似乎是一個很好的時刻,但從我的研究來看,並不能保證知道應用程序是否被殺死。使用Firebase跟蹤用戶的在線/離線狀態

那麼,你們會如何跟蹤你的用戶在線狀態與Firebase或你自己的服務器或其他什麼。我很好奇

說在線和離線,我的意思是如果用戶在那個時候使用的應用程序。

+0

見https://firebase.google.com/docs/database/android/offline-capabilities#section-connection-state –

回答

0

您可以設置互聯網連接的偵聽器。就像檢查互聯網是否連接一樣。如果沒有連接,則將布爾值設置爲false,如果互聯網連接,則布爾值將爲true。看一看代碼:

ConnectivityManager cm =(ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
    boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting(); 

    if(isConnected) 
    { 
     // set your boolean to true 
    } 
    if(!isConnected) 
    { 
     // set your boolean to false here 
    } 
+0

嗯,這個代碼的權利服務裏? – user6650650

+0

您可以選擇該服務。 – CopsOnRoad

+0

@Jack你確定這段代碼是根據這個問題嗎? –

0

火力地堡通過特殊.info/connected路徑

var amOnline = new Firebase('https://<demo>.firebaseio.com/.info/connected'); 
var userRef = new Firebase('https://<demo>.firebaseio.com/presence/' + userid); 
amOnline.on('value', function(snapshot) { 
    if (snapshot.val()) { 
    // User is online. 
    userRef.set(true); 
    } else { 
    // User is offline. 
    // WARNING: This won't work! See an explanation below. 
    userRef.set(false); 
    } 
}); 

這裏提供了一個方便的方式做,這是關於跟蹤用戶狀態很好的解釋。 https://firebase.googleblog.com/2013/06/how-to-build-presence-system.html