- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一个我必须做的项目
configure realtime internet connection status
一个客户端应用程序,即使应用程序在后台。
我必须在
上显示它ServerSide that weather specific device is connected to internet or not
我正在使用 Firebase 执行此场景,但它不起作用。
连接服务
public class ConnectionService extends Service implements ConnectivityReciever.ConnectivityRecieverListner {
public static final int notify = 5000;
private Handler mHandler=new Handler();
private Timer mTimer = null;
FirebaseDatabase db;
DatabaseReference dbRef;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
dbRef=FirebaseDatabase.getInstance().getReference(Common.DEVICE_NAME).child("online");
MyApplication.getInstance().setConnectivtyListner(ConnectionService.this);
boolean isConnected=ConnectivityReciever.isConnected();
checkConnection(isConnected);
if(mTimer!=null){
mTimer.cancel();
}else{
mTimer=new Timer();
mTimer.scheduleAtFixedRate(new TimeDisplay(),0,notify);
}
}
private void checkConnection(boolean isConnected) {
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(ConnectionService.this, "Service is destroyed", Toast.LENGTH_SHORT).show();
}
@Override
public void onNetworkConnectionChanged(boolean isConnected) {
if(isConnected){
dbRef.onDisconnect().setValue("true");
Toast.makeText(ConnectionService.this, "online", Toast.LENGTH_SHORT).show();
}
if(!isConnected){
dbRef.onDisconnect().setValue(ServerValue.TIMESTAMP);
Toast.makeText(ConnectionService.this, "offline", Toast.LENGTH_SHORT).show();
}
}
//class TimeDisplay for handling task
class TimeDisplay extends TimerTask {
@Override
public void run() {
// run on another thread
mHandler.post(new Runnable() {
@Override
public void run() {
MyApplication.getInstance().setConnectivtyListner(ConnectionService.this);
boolean isConnected=ConnectivityReciever.isConnected();
checkConnection(isConnected);
// display toast
Toast.makeText(ConnectionService.this, "Service is running", Toast.LENGTH_SHORT).show();
}
});
}
private void checkConnection(boolean isConnected) {
if(isConnected){
dbRef.setValue("true");
Toast.makeText(ConnectionService.this, "online", Toast.LENGTH_SHORT).show();
}
if(!isConnected){
dbRef.child("online").onDisconnect().setValue(ServerValue.TIMESTAMP);
Toast.makeText(ConnectionService.this, "offline", Toast.LENGTH_SHORT).show();
}
}
}
}
申请
public class MyApplication extends Application {
public static MyApplication mInstance;
DatabaseReference dbRef;
@Override
public void onCreate() {
super.onCreate();
mInstance=this;
Common.DEVICE_NAME = android.os.Build.MODEL;
FirebaseApp.initializeApp(this);
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
}
public static synchronized MyApplication getInstance(){
return mInstance;
}
public void setConnectivtyListner(ConnectivityReciever.ConnectivityRecieverListner listner){
ConnectivityReciever.connectivityReceiverListener = listner;
}
}
所有的方法我都试过了,都没有用。
帮助将被拒绝。
谢谢
最佳答案
如果您已使用 menifest.xml 和返回的 start_sticky 注册您的服务,它应该可以工作,但还有另一种方法,您可以编写一个 api 来 ping 服务器(在特定时间间隔后在服务中调用它),并且使用 TRUE 保存时间戳(如果已连接),所以现在时间戳与 bool 值 true 一起保存,让我们假设现在连接已关闭或单元已死,因为不会向服务器发送更新, 正确的?现在它来了 reciver/admin 应用程序的魔力(你想在其中以图形方式显示此在线状态),现在编写另一个 API 将获取带有时间戳的已保存响应并获取触发此获取 API 的当前时间,找到区别 b/w 这两个时间戳 & 在这里强加一个条件 `(这里的区别是以秒为单位,因为我们使用的是时间戳)
if(timeDifference>60)`
{
echo "true";
}
else
echo "false";
通过这种方式你可以得到实时的在线/离线状态在您可以设置的接收者应用程序上
if(response.equals("true"))
{
textView.setText("ONLINE")
}
else
{
textView.setText("OFFLINE")
}
此外,您也可以阅读这篇文章的答案 Save Response to Server When Network Connection goes OFF
关于android - Firebase:服务中的 onDisconnect(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54806278/
当用户从我的 Web 应用程序注销时,我使用以下代码显式结束其中心的连接 $.connection.hub.stop(); 在服务器端,我希望我对 Hub 类的实现会立即达到我对 OnDisconne
我正在尝试覆盖 OnConnected() , OnDisconnected()方法,但我得到: OnConnected()': no suitable method found to overrid
在运行主要基于执行端点的 .NET Core Web 应用程序时,我经常收到 NullReferenceException在 AbortIO调用 context.Response.Redirect(u
我发现我可以处理用户使用 onDisconnect 关闭应用程序的情况,但它无法按我的预期工作。 我想要做的只是在用户关闭设备或关闭应用程序时删除节点。但即使我关闭模拟器,数据库也从未改变。 mBas
来自GooglePlayServicesClient.ConnectionCallbacks当 LocationClient 断开连接时,应该调用 onDisconnected 文档。根据我的测试,我
我正在为我的 Android 应用程序使用 Firebase 后端。我想为我的聊天构建一个用户存在系统。为此,我从 Firebase 指南中获取了模式 final Firebase myConnect
问题:SignalR 未在我的网络服务器上触发 OnDisconnected。很简单,就是不开火。我试过: 关闭浏览器窗口 导航离开 正在重新加载 在客户端的 SignalR 连接上触发 stop()
我在使用 Firebase 的 onDisconnect() 时遇到问题。当我注册 ef.onDisconnect().removeValue() 然后断开互联网连接并关闭应用程序(正常或强制关闭,这
我正在做一个我必须做的项目 configure realtime internet connection status 一个客户端应用程序,即使应用程序在后台。 我必须在 上显示它 ServerSid
我在信号 R 的 TestHub(由 Hub 继承)类中有一个断开连接方法。我无法从 OnDisconnected 方法调用 javascript 方法 fnDeleteCustomer ,但是在 C
我正在阅读有关 onDisconnect 的 firebase 文档,但它并没有完全提到我正在寻找的操作。 https://firebase.google.com/docs/reference/js/
我正在为我的 Android 应用程序使用 Firebase 后端。我想为我的聊天构建一个用户状态系统。为此,我采用了 Firebase 指南中的模式 final Firebase myConnect
我有一个使用 Firebase 的应用。 Firebase 的记录包含一个“状态”字段,该字段应该提供用户离线或在线的信息。 我是这样初始化的: fireBase = new Firebase("ht
我有以下代码: func OnlineStatus(userID: String){ handle = Auth.auth().addStateDidChangeListener {
type TForm8 = class(TForm) idtcpclnt1: TIdTCPClient; idtcpsrvr1: TIdTCPServer; procedu
教程仅介绍了在 OnConnected() 上向组添加连接 ID,但是如何在 OnDisconnect() 上清理它呢? 在连接永久丢失后,客户端会获得一个新的连接 ID。组列表中的旧连接 ID 会发
我一直在广泛使用 Firebase,但仍然只面临一个真正的问题:根据我的经验,onDisconnect 并不是 100% 可靠。 如果您在没有先关闭窗口的情况下关闭计算机,或者终止浏览器,有时“垃圾收
我注意到,当我设置 onDisconnect()、在另一台计算机上点击我的应用程序并关闭 WIFI 时,我的数据库没有更新;但是,当我重新打开 WIFI 时,它会更新。这让我很担心,因为我正在构建一个
我想检查用户的在线状态,在实时数据库中我曾经借助 onDisconnect() 来检查这一点,但现在我已经转向 firestore 并且找不到任何类似的方法。 最佳答案 根据这个onDisconnec
当页面加载时,我在我的中心开始了一个新任务。此任务将数据发送到浏览器以更新特定的 html 元素。当我离开页面浏览时,我想停止任务。 问题是在任务停止之前(由于它的 sleep 参数),一个新的 to
我是一名优秀的程序员,十分优秀!