如何在Oreo中使用Kurento API为即时消息运行后台服务?

时间:2018-11-27 10:19:52

标签: java android android-service android-8.0-oreo kurento

Android Oreo已发布,但对运行后台服务/任务有很多限制。现在,服务在Oreo中的行为不再像以前那样正常。

但是,如果我必须在后台为24 * 7的即时消息运行服务,该怎么办?

我正在使用kurento Third Party API开发用于即时消息传递的应用程序。为此,我将必须运行一个后台服务,该服务与服务器通信以获取新消息。

然后降低Oreo的效果。

如何防止android系统无法终止该服务?

我不想在服务运行期间一直显示通知,因为我会为新消息将服务以24 * 7的时间运行,因此给用户带来廉价的UI体验。

2 个答案:

答案 0 :(得分:0)

在牛轧糖版本之后,更改了地面服务的方式。如果您希望后台服务正常工作,则可以按照以下代码中的说明进行操作。在IntentService中,生命周期方法 onCreate()被调用。然后在此方法中添加以下代码。

  @Override
public void onCreate() {
    super.onCreate();

    int NOTIFICATION_ID = (int) (System.currentTimeMillis()%10000);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        startForeground(NOTIFICATION_ID, new Notification.Builder(this).build());
    }

}

在致电服务时,请通过打击码致电服务

  Intent intent = new Intent(context, FindNumberService.class);
    intent.putExtras(bundle);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        context.startForegroundService(intent);
    }
    else {
        context.startService(intent);
    }

希望这会对您有所帮助。

答案 1 :(得分:0)

作为方法,您应该修改传入信号的逻辑以用作传入消息推送通知的通道。当应用程序进入后台时,您必须依靠push notifications with high priority.

在推动之后,您可以执行所有需要的操作。