且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

未收到带有 Firebase 云消息传递的 Android 后台通知

更新时间:2022-01-24 23:06:32

当应用程序关闭时,它会关闭服务.您必须重新启动服务.

When the app is closed, it shutdowns the service. You must to restart the service.

在您的 Application 类上,实现 ActivityLifecycleCallbacks 并在 onActivityDestroyed 上重启服务并发出警报.

On your Application class, implements ActivityLifecycleCallbacks and on onActivityDestroyed restart the service with an alarm.

public class YourApplication extends Application implements Application.ActivityLifecycleCallbacks {
    @Override
    public void onCreate() {
        super.onCreate();
        registerActivityLifecycleCallbacks(this);
    }

    @Override
    public void onActivityDestroyed(Activity activity) {
            Intent restartService = new Intent(getApplicationContext(), MyAppFirebaseMessagingService.class);
            PendingIntent pendingIntent = PendingIntent.getService(getApplicationContext(),1,restartService,PendingIntent.FLAG_ONE_SHOT);
            AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
            alarmManager.set(AlarmManager.ELAPSED_REALTIME,5000,pendingIntent);
    }
}