android-来自另一部手机的即时通知。怎样?

android-来自另一部手机的即时通知。怎样?,android,notifications,Android,Notifications,嗨,我有一个很棒的应用程序,可以为客户和企业主工作,所以假设一个企业主在一端连接,另一端连接一个客户,客户可以下某种订单(不要透露太多:D),我想让企业主知道客户刚刚下了一个新订单,考虑到两者都有适用性。有人能告诉我怎么做吗? 我正在使用Firebase实时数据库,我处理得很好,但是当应用程序关闭,客户端刚刚下了订单时会发生什么,它需要在业务所有者端弹出,我还没有尝试过通知,但我想这并不难理解,我只是希望在下订单时触发business owner应用程序 谢谢您的时间。您可以使用后台服务,实际上

嗨,我有一个很棒的应用程序,可以为客户和企业主工作,所以假设一个企业主在一端连接,另一端连接一个客户,客户可以下某种订单(不要透露太多: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已更新。您所指的对象无效,请一些人。。。