android-来自另一部手机的即时通知。怎样?
嗨,我有一个很棒的应用程序,可以为客户和企业主工作,所以假设一个企业主在一端连接,另一端连接一个客户,客户可以下某种订单(不要透露太多:D),我想让企业主知道客户刚刚下了一个新订单,考虑到两者都有适用性。有人能告诉我怎么做吗? 我正在使用Firebase实时数据库,我处理得很好,但是当应用程序关闭,客户端刚刚下了订单时会发生什么,它需要在业务所有者端弹出,我还没有尝试过通知,但我想这并不难理解,我只是希望在下订单时触发business owner应用程序android-来自另一部手机的即时通知。怎样?,android,notifications,Android,Notifications,嗨,我有一个很棒的应用程序,可以为客户和企业主工作,所以假设一个企业主在一端连接,另一端连接一个客户,客户可以下某种订单(不要透露太多:D),我想让企业主知道客户刚刚下了一个新订单,考虑到两者都有适用性。有人能告诉我怎么做吗? 我正在使用Firebase实时数据库,我处理得很好,但是当应用程序关闭,客户端刚刚下了订单时会发生什么,它需要在业务所有者端弹出,我还没有尝试过通知,但我想这并不难理解,我只是希望在下订单时触发business owner应用程序 谢谢您的时间。您可以使用后台服务,实际上
谢谢您的时间。您可以使用后台服务,实际上我在Firebase上做了一些您需要的事情,我们需要通知一些用户其他用户按下了紧急按钮。这是我所做工作的示例代码,您需要一个粘性服务和firebase侦听器,我不知道当前版本是否与我所做的工作相同,但这是您可以使用的,或者至少我可以告诉您如何做您需要的事
public class DummyService extends Service implements ValueEventListener, ChildEventListener {
private Query mRef;
public static final String FIREBASE_URL = "https://your-firebase-url.firebaseio.com/";
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
// some stuff else you need to do
Firebase.setAndroidContext(this);
// this will be your main ref, it'll hear everything on your firebase db
Firebase mFirebaseRoot = new Firebase(DummyService.FIREBASE_URL);
mRef = mFirebaseRoot;
// if you want to hear an specific query you could use something like I used
// you can read the docs at firebase web
//mRef = mFirebaseRoot.child("your_child);
mRef.addListenerForSingleValueEvent(this);
mRef.addChildEventListener(this);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
// read the docs of how this listeners work
if (something) {
notifyUser();
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
@Override
public void onDataChange(DataSnapshot dataSnapshot) {}
@Override
public void onCancelled(FirebaseError firebaseError) {}
}
您可以使用广播接收器捕捉设备何时启动并启动您的服务,这样用户就无需打开应用程序,应用程序将始终运行
希望这将是有用的,代码示例缩进很抱歉,我不知道为什么看起来像这样哈哈。你可以使用后台服务,我实际上用Firebase做了一些你需要的事情,我们需要通知一些用户其他用户按下了紧急按钮。这是我所做工作的示例代码,您需要一个粘性服务和firebase侦听器,我不知道当前版本是否与我所做的工作相同,但这是您可以使用的,或者至少我可以告诉您如何做您需要的事
public class DummyService extends Service implements ValueEventListener, ChildEventListener {
private Query mRef;
public static final String FIREBASE_URL = "https://your-firebase-url.firebaseio.com/";
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
// some stuff else you need to do
Firebase.setAndroidContext(this);
// this will be your main ref, it'll hear everything on your firebase db
Firebase mFirebaseRoot = new Firebase(DummyService.FIREBASE_URL);
mRef = mFirebaseRoot;
// if you want to hear an specific query you could use something like I used
// you can read the docs at firebase web
//mRef = mFirebaseRoot.child("your_child);
mRef.addListenerForSingleValueEvent(this);
mRef.addChildEventListener(this);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
// read the docs of how this listeners work
if (something) {
notifyUser();
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
@Override
public void onDataChange(DataSnapshot dataSnapshot) {}
@Override
public void onCancelled(FirebaseError firebaseError) {}
}
您可以使用广播接收器捕捉设备何时启动并启动您的服务,这样用户就无需打开应用程序,应用程序将始终运行
希望这会有用,抱歉代码示例缩进,我不知道为什么看起来是这样的哈哈。即使它已关闭。您应该保留数据库侦听器,这意味着不要在
OnStop()中删除它们。
尝试实现后台服务,我想了一下,但不确定。我该如何处理电池消耗?因为firebase值监听器会自己检查更新,它是每10秒检查一次还是每分钟检查一次谁知道。。。也许是一个带有单事件值侦听器的循环服务,而不是仅仅保持它的打开状态,有什么想法吗?即使它是关闭的。您应该保留数据库侦听器,这意味着不要在OnStop()
中删除它们,尝试实现后台服务,我想了一下,但不确定。我该如何处理电池消耗?因为firebase值监听器会自己检查更新,它是每10秒检查一次还是每分钟检查一次谁知道。。。也许是一个带有单事件值侦听器的循环服务,而不是仅仅保持它的打开状态,有什么想法吗?此事件似乎是编译基线,因为对象不存在,也许我应该尝试其他方法。我不能使用此代码,因为fire base已更新。您引用的对象无效,请一些人…此文件似乎是编译基础,因为对象不存在,也许我应该尝试其他一些我不能使用此代码,因为fire base已更新。您所指的对象无效,请一些人。。。