Android应用程序在某些设备(如lenovo)上的多任务托盘中被杀死应用程序时未收到Firebase推送通知

时间:2017-02-17 05:49:25

标签: android firebase firebase-cloud-messaging

我正在使用firebase向用户发送推送消息,puh在应用程序运行时或在后台运行时工作正常,但是当我使用多任务托盘杀死应用程序时,它没有在某些设备上接收推送,但是在某些设备上,它的工作完美无缺, 似乎应用程序正在接收推送但未显示它。 我搜索了SO并发现了类似的问题,但没有解决问题。 因为我的应用程序严重依赖推送消息。 这是实现它的任何方式吗? 我正在使用以下代码重新启动服务,但没有任何反应。

  @Override
public void onTaskRemoved(Intent rootIntent) {
    super.onTaskRemoved(rootIntent);

   // Log.d(TAG, "TASK REMOVED");
    PendingIntent service = PendingIntent.getService(
            getApplicationContext(),
            1001,
            new Intent(getApplicationContext(), MyFirebaseMessagingService.class),
            PendingIntent.FLAG_ONE_SHOT);

    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, 1000, service);
}

2 个答案:

答案 0 :(得分:0)

某些制造商限制了app自动启动。因此,如果推送,我们的应用程序将不会收到该广播。

我们必须为我们的应用启用自动启动,以便在每种情况下都能使用推送通知。可能有一些名为“自动启动”的设置。打开我们的应用程序。

答案 1 :(得分:0)

尝试这种方式:

{
 "notification" : {
   "body" : "great match!",
   "title" : "Portugal vs. Denmark",
   "icon" : "myicon"
 }
 "data": {
   "message":Hello,
   "member_id":"15",
   "push_type":2
  },
 "re‌​gistration_ids":["er‌​3444@34343sdsadsadsa‌​dsad213213"]
}

当应用程序不可用时,firebase会从通知对象触发默认推送,因此您需要默认使用通知对象,并且数据用于其他数据。