0

我有一个发送和接收 FCM 消息(Google Firebase 消息)的 android 应用程序。

它工作得很好,因为当我的应用程序不在前台或不使用它时我可以接收消息,因为我有一个正在运行的服务。

不幸的是,当我不在某些智能手机(如 OPPO、VIVO 或更可能在 ColorOS 上运行的)上运行应用程序或其背景时,它无法正常工作。

可能是什么问题?我们尝试过,但同样的情况也发生在 WhatsApp 上

以下是我的服务代码:

package com.msb.launcher.services;

import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;

import com.msb.auth.utils.Keys;
import com.msb.auth.utils.LogUtils;

public class MessagingService extends Service {

    public static final String EXTRA_AUTH_TOKEN = "EXTRA_AUTH_TOKEN";
    public static final String EXTRA_FIREBASE_ID_TOKEN = "EXTRA_FIREBASE_ID_TOKEN";

    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            LogUtils.i("Service running.");
            sendEmptyMessageDelayed(100, 500);

        }
    };

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        LogUtils.i("onStartCommand");
        return START_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Override
    public void onTaskRemoved(Intent rootIntent) {
        onDestroy();
        super.onTaskRemoved(rootIntent);
        try {
            handler.removeCallbacksAndMessages(null);
            sendBroadcast(new Intent(Keys.ACTION_RESTART_SERVICE));
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    @Override
    public void onDestroy() {
        LogUtils.i("Service Destroy");
        handler.removeCallbacksAndMessages(null);
        sendBroadcast(new Intent(Keys.ACTION_RESTART_SERVICE));
        super.onDestroy();
    }

    @Override
    public void onCreate() {
        super.onCreate();
        LogUtils.i("Messaging Service Started");
        handler.sendEmptyMessage(100);
    }
}
4

0 回答 0