在没有活动的情况下启动FCM服务

时间:2016-06-22 22:13:53

标签: android-studio service boot firebase-cloud-messaging

我跟着Firebase Quickstart Messaging Tutorial,我遇到了问题。

我想在系统启动时启动这两项服务(MyFirebaseMessagingServiceMyFirebaseInstanceIDService)。

为此,我已将RECEIVE_BOOT_COMPLETED权限添加到AndroidManifest.xml

我还将此添加到清单

<receiver android:name=".AutoStart">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <action android:name="android.intent.action.QUICKBOOT_POWERON" />
    </intent-filter>
</receiver>

在我的 AutoStart课程中,有以下内容:

@Override
public void onReceive(Context context, Intent intent) {
    context.startService(new Intent(context, MyFirebaseInstanceIDService.class));
    context.startService(new Intent(context, MyFirebaseMessagingService.class));
}

这两项服务与我上面提供的链接几乎相同。我的MainActivity只包含一些Views

但它不起作用:一旦服务启动,服务就会自动终止,我在logcat中收到这样的消息:

I/ActivityManager﹕ Killing 3100:com.company.E/u0a85 (adj 15): empty #17

我已经搜索了有关此“杀戮问题”的解决方案,我认为我发现了一些有趣的内容here(约WakefulBroadcastReceiver)。

如果这部分解决方案,我遇到了这个答案的另一个问题...... 他谈到的onHandleIntent()覆盖方法是IntentService的一部分,其中我的两项服务是Service

如果这不是解决方案的一部分,我不知道如何防止我的应用被杀 ......

0 个答案:

没有答案