- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
自从我将 GCM 升级到 8.4.0 后,我的应用有时会崩溃并且日志显示以下异常:
Fatal Exception: java.lang.RuntimeException: Unable to start service com.myapp.app.Service_GCMListenerService@ea3f6c7 with Intent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10000010 pkg=com.myapp.app cmp=com.myapp.app/.Service_GCMListenerService (has extras) }: java.util.concurrent.RejectedExecutionException: Task com.google.android.gms.gcm.GcmListenerService$1@7b28d65 rejected from java.util.concurrent.ThreadPoolExecutor@f392a3a[Running, pool size = 9, active threads = 9, queued tasks = 128, completed tasks = 0]
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3027)
at android.app.ActivityThread.-wrap17(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1442)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by java.util.concurrent.RejectedExecutionException: Task com.google.android.gms.gcm.GcmListenerService$1@7b28d65 rejected from java.util.concurrent.ThreadPoolExecutor@f392a3a[Running, pool size = 9, active threads = 9, queued tasks = 128, completed tasks = 0]
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2014)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:794)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1340)
at com.google.android.gms.gcm.GcmListenerService.zzn(Unknown Source)
at com.google.android.gms.gcm.GcmListenerService.onStartCommand(Unknown Source)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3010)
at android.app.ActivityThread.-wrap17(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1442)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
这次崩溃并没有解释我的代码中的错误在哪里。我该怎么办?
这是我对 GCM 的实现:
Android list :
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.myapp.app" />
</intent-filter>
</receiver>
<service
android:name=".Service_GCMListenerService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
android:name=".Service_IDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>
Service_GCMListenerService
public class Service_GCMListenerService extends GcmListenerService {
@Override
public void onDeletedMessages() {
super.onDeletedMessages();
PushManager.checkForNewPush();
}
@Override
public void onMessageReceived(String from, Bundle data) {
super.onMessageReceived(from, data);
PushManager.processPush(this,false,data.getString("message"));
}
}
Service_IDListenerService
public class Service_IDListenerService extends InstanceIDListenerService {
/**
* Called if InstanceID token is updated. This may occur if the security of
* the previous token had been compromised. This call is initiated by the
* InstanceID provider.
*/
@Override
public void onTokenRefresh() {
GCMUtils.registerNewInstanceID();
}
最佳答案
AsyncTask 的 THREAD_POOL_EXECUTOR
有 128 个任务排队的硬编码限制。您的问题是您正在该执行程序上执行大量任务。
如果您没有在任何 AsyncTask 上直接调用 executeOnExecutor
,最有可能的罪魁祸首是返回 ListenableFuture
的第三方方法,尤其是那些执行网络操作的方法。您可能需要一种方法来串行执行这些操作。将所有这些操作移动到在 AsyncTask.SERIAL_EXECUTOR
上执行的 AsyncTasks 中是一种解决方案。
关于Android GCM 有时应用程序崩溃,因为 com.google.android.gms.gcm.GcmListenerService 被 java.util.concurrent.ThreadPoolExecutor 拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37273382/
我正在尝试使用 gcm 在 Android 设备上推送通知。到目前为止,我已经在 gcm 上注册并向我的后端发送了必要的信息,以便向构建 200 响应的 gcm 服务器发出发布请求。除了客户端接收消息
我已经按照本教程创建了一个新的 GCM 监听器服务: http://www.appifiedtech.net/2015/08/01/android-gcm-push-notification-exam
我正在使用 GCM。我想停止 GcmListenerService,这样我就可以停止应用程序接收不需要的通知。 我已经尝试了以下方法来关闭该服务,但它似乎并没有成功 Intent intent = n
在 AndroidManifest.xml 中我定义了以下组件
我的 GCM 服务有时会出现问题,当我的智能手机的 RAM 被自动清除时该服务会关闭(如果您需要更多详细信息,请阅读 this)。 据我所知,如果我将我的服务设置为在前台运行,它应该可以帮助系统使用
当应用程序处于后台或手机被锁定或处于 sleep 模式时,不会调用 GcmListenerService,但会触发通知。这将如何称呼当应用程序处于前台时,它的工作非常理想。GcmListenerSer
我正在尝试实现 GCM。一切正常,除了 onMessageReceived() 方法仅在应用程序运行时被调用。 我搜索了解决方案,但找不到与我相匹配的案例。我的 GCM 请求正文仅包含“to”和“da
我有以下 list - 并遵循 on
我正在尝试从服务器向我的应用程序获取消息。我有这个服务器 url,它向所有用户发送消息: https://taub-prayer-ramym.c9.io/send?message=123 我的应用程序
使用新的 GcmListenerService,我正在尝试在收到消息时获取用户位置: public class MobilAirGcmListenerService extends GcmListen
我目前正致力于在我的应用中实现 GCM 通知。 我遇到的问题是未调用我的 GcmListenerService 实现中的 onMessageReceived() 方法。我从 GCM 服务器收到数据很好
这是我的 list 文件
我点击了这个链接https://developers.google.com/cloud-messaging/android/start但我不明白一些事情。 我在哪里启动 GcmListenerServ
我正在使用 GCM 开发具有推送通知功能的 Android 应用程序。我创建了一个名为 PushNotificationService 的类,它扩展了 GCMListenerService。在 onM
Google 建议使用 GcmListenerService 代替 GcmBroadcastReceiver。 正在制作一个使用 GCM 的库项目(com.android.library 插件)。当应
当好友取消好友时,我正在使用 Otto 刷新好友列表。我在从非主线程更新 UI 时遇到问题,所以我调查了它并使用此“解决”了这个问题 post .他们使用的代码是这样的: public class B
我已按照说明设置 Android GCM 客户端应用程序 here ,并且对这段摘录有特别的疑问: For existing apps that extend a WakefulBroadcastRe
我正在尝试从我的 GCMServiceListener 向我的 Activity 发送更新,所以,我正在使用 RxJava/RxAndroid 并创建了一个 BusClass 用于处理发送和 Obse
自从我将 GCM 升级到 8.4.0 后,我的应用有时会崩溃并且日志显示以下异常: Fatal Exception: java.lang.RuntimeException: Unable to sta
我是一名优秀的程序员,十分优秀!