有关于此错误的讨论,但似乎他们最终都得到了关于“停止状态”(应用程序)的答案。
我看到了不同的东西。
我有两个云推送示例,一个是官方GCM示例,另一个是跟随本教程的FCM项目,它们都受到影响。
两者都安装在带有6.0.1的Samsung S6上,设备已插入(无打盹)并连接到WiFi。
有时,将推送消息发送到GCM示例或FCM应用程序会在logcat中开始失败:
07-17 14:37:38.851 W / GCM-DMM(29459):广播意图回调:结果=取消内容{act = com.google.android.c2dm.intent.RECEIVE flg = 0x10000000 pkg = gcm.play .android.samples.com.gcmquickstart(有额外内容)}
07-17 14:38:25.231 W / GCM-DMM(29459):广播意图回调:result = CANCELED forIntent {act = com.google.android.c2dm.intent.RECEIVE flg = 0x10000000 pkg = firebasetest.example .kman.firebasetest(有额外内容)}
启动任一应用程序的UI将使推送消息再次(到该应用程序),但旧的(产生错误)将不会重新传递。
现在 - 我没有强制停止任一应用程序。其中一个我可能在15分钟前使用过。设备没有进入睡眠状态(屏幕已打开,并且一直处于插入状态)。
所以“强制停止”解释在这里不适用,打盹模式不适用于此。
此外,谈到“强制停止”,我已经做了几次测试,然后故意关闭“最近的应用程序列表”中的任一个(GCM或FCM)应用程序,验证该进程被杀死(通过logcat)然后(GCM或FCM)推送消息就可以了。
所以它必须是别的东西(不是“强制停止”或打盹模式)而这个别的东西会导致推送消息变得不可靠,这会破坏目的。
有关如何跟踪此问题的任何想法,以防止/避免推送消息传递突然中断?
GCM样本的清单:
FCM测试的清单:
```的xml
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name=".MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
</application>
```
答案 0 :(得分:1)
我的结论是:
这是由Android Studio引起的。
当你完成当天的项目工作并退出AS时,它会询问应该终止应用程序(正在调试)。
无论您在此处选择什么,AS都会终止该应用并将其置于&#34;停止&#34;状态 - 不仅仅是GCM,警报也会停止发射。
我发现这种情况一直都在发生,并养成了自己重新启动应用程序并在那里做某事的习惯,因此它并没有说“停止”#34;第二天并没有让我感到惊讶(&#34;发生的事情&#34;)。
以为我已经为此提交了一个错误,但现在无法找到它。如果有人有兴趣,请随意...