How to run background service for Instant Messaging using Kurento API in Oreo?

天涯浪子 提交于 2019-12-25 00:33:52

问题


Android Oreo has released with many restrictions on running background services/Task. Services now don't behave like normal in Oreo as they used to before.

But what if I have to run a service in background for 24*7 for Instant Messaging.

I am developing an application for Instant messaging using kurento Third Party API. To achieve this I will have to run a background service which communicate with server for new messages.

Lower then Oreo its working fine.

How do I prevent android system to not kill the service?.

I don't want to show a notification all time while my service is running because i will run my service for 24*7 for new messages so it feels cheap UI Experience to user.


回答1:


After Nougat version the way back ground service is changed. If you want your background service to work, you can do as mentioned in the code below. In IntentService, the life cycle method onCreate() is called. And in this method add below code.

  @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());
    }

}

And when you are calling service, call your service via blow code

  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);
    }

Hope this will help you.




回答2:


As the way to do, you should modify logic of incoming signals to use as channel for incoming messages push notifications. When app goes to background, you have to rely on push notifications with high priority.

And after got push, you can carry out all needed stuff.



来源:https://stackoverflow.com/questions/53497436/how-to-run-background-service-for-instant-messaging-using-kurento-api-in-oreo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!