当设备屏幕关闭时,如何处理firebase通知?

时间:2017-06-14 09:20:02

标签: android firebase firebase-cloud-messaging firebase-notifications

当设备屏幕关闭意味着在通知到达时唤醒设备时,我将尝试处理firebase通知。在我的项目通知中划分为可能状态,以便我可以在需要时以编程方式唤醒设备。也可以使用唤醒锁定,但当屏幕关闭时实际上

    @Override
    public void onMessageReceived(RemoteMessage message) {
    }

这种方法在这种情况下没有这样调用,所以我怎么能唤醒设备?任何好友都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

FCM(Firebase云消息传递)中有两种类型的消息:

通知消息:只有当您的应用处于前台时,这些消息才会触发onMessageReceived()回调

数据消息:即使您的应用处于前景/后台/已杀死

,这些消息也会触发onMessageReceived()回调

注意:请确保您没有添加JSON密钥通知

当您的应用在后台或被杀时,以下消息将不会调用您的 onMessageReceived(),并且您无法自定义您的通知。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">


<include layout="@layout/online_state"
    android:layout_height="5dp"
    android:layout_width="wrap_content"/>

<android.support.v4.widget.SlidingPaneLayout
    android:id="@+id/content_view_spl"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >



    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?attr/color_background_primary"
        android:orientation="vertical" >

        <de.timroes.android.listview.EnhancedListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="?attr/color_background_primary"
            android:divider="@color/black"
            android:dividerHeight="1dp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/selected_item"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical" >
    </LinearLayout>

</android.support.v4.widget.SlidingPaneLayout>

但是使用它会起作用

{
      "to": "example",
      "notification": {
        "title" : "title",
        "text": "text"
       }
    }