2016-11-26 76 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