Android推送通知服务

时间:2017-09-18 22:04:11

标签: android websocket push-notification

目前我有一个Spring后端,我的android应用程序上有一个websocket正在侦听更改。如果有更改,则新数据将添加到我的应用布局中。现在,我希望在有更改但用户未运行时对用户进行通知。

在阅读了一些我发现的文章之后,这可以通过GCM(FCM)来完成。 但是我不想因为这个而改变我的后端。 所以我的问题:

即使应用程序没有运行,我如何维护WebSocket连接?

如果服务是解决方案 - 我如何将WebSocket实例从Activity传递给服务?

如果有人能给我一些想法,那真的会帮助我。 谢谢你的帮助:)

1 个答案:

答案 0 :(得分:0)

如果要实施后台运行服务,则需要创建foreground service。因为Google限制Android O上的后台执行。

您可以在onStartCommand方法中处理套接字:

public class SocketService extends Service {

    ...

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        try {
            WebSocketClient client = new WebSocketClient(new URI("http://myserver.hu")) {

                @Override
                public void onOpen(ServerHandshake handshakedata) {

                }

                @Override
                public void onMessage(String message) {

                }

                @Override
                public void onClose(int code, String reason, boolean remote) {

                }

                @Override
                public void onError(Exception ex) {

                }
            }

        } catch (URISyntaxException e) {
           e.printStackTrace();
        }
        return START_STICKY;
    }
}

但我认为FCM是推送消息传递的更好选择。