嗨,我有这个非常棒的应用程序可以为客户和企业主工作,所以让我们说一个企业主在一端连接而一个客户端在另一端连接,客户端可以下一个类别的订单(不会泄露太多:D)和我想要的是业务所有者知道客户刚刚下了新订单,考虑到两者都有应用程序。谁能指点我怎么样? 我正在使用Firebase实时数据库我处理它非常好,但是当应用程序关闭并且客户端只是下订单时,会发生什么,它需要在业务所有者方面弹出,我还没有尝试通知但我假设它不难理解我只希望在下订单时触发业务所有者应用程序。
感谢您的时间。
答案 0 :(得分:0)
你可以使用后台服务,我实际上做了类似你需要的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) {}
}
你可以使用BroadcastReceiver捕获设备何时启动并启动你的服务,这样用户就不需要打开应用程序,它将一直运行。
希望这会有用,对不起代码示例缩进,我不是为什么这样看起来哈哈。