android 服务被挂起,Android:由于线程通知而等待Gcm被挂起并等待

在Android应用中,开发者遇到GCM(Google Cloud Messaging)推送消息处理的问题。当数据连接关闭后,手机接收到大量堆积的消息,一旦数据连接恢复,GCM服务处理这些消息时出现挂起。问题在于GCMBaseIntentService的onMessage()方法中,尝试启动一个新线程来同步处理消息,并使用wait()方法导致服务被挂起。解决方案可能涉及重新设计消息处理机制,确保线程同步和异步任务的正确交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我的演示项目中,我正在使用GCM接收推送消息。我需要处理我以同步方式接收的推送消息。一旦我收到我的推送信息,我需要执行一些任务并将确认发送到我的服务器(确认由异步任务发送)。我的项目正在工作正常情况下,但如果我关闭数据连接,如果我给10推信息,然后我打开我的电话的数据连接,我的GCM被绞死,因为它接收消息作为一堆,之后,它不处理我推。 PLZ帮助解决这个问题Android:由于线程通知而等待Gcm被挂起并等待

MyGCMService.java

public class MyGCMService extends GCMBaseIntentService{

.....

public GCMIntentService() {

...

myThreadClass =new MyThreadClass();

}

@Override

protected void onRegistered(Context context, String registrationId) {

....

}

@Override

protected void onUnregistered(Context context, String registrationId) {

....

}

@Override

protected void onMessage(Context context, Intent intent) {

try{

// System.out.println("*********** 4-3- "+String.valueOf(myThreadClass.getState()).equals("NEW"));

if(String.valueOf(myThreadClass.getState()).equals("NEW"))

myThreadClass.start();

}catch(Exception e){

}

synchronized (myThreadClass) {

...

myThreadClass.wait();

}

}

@Override

protected void onDeletedMessages(Context context, int total) {

...

}

@Override

public void onError(Context context, String errorId) {

....

}

@Override

protected boolean onRecoverableError(Context context, String errorId) {

....

}

public void OnDestroy() {

super.onDestroy();

}

}

MyTreadClass.java

public class MyThreadClass extends Thread {

MyThreadClass myThreadClass;

String LOG_TAG = MyThreadClass.class.getSimpleName();

public void run() {

synchronized (this) {

Looper.prepare();

performAction();

notify();

}

}

public MyThreadClass() {

myThreadClass=this;

}

public void performMDMAction() {

//Doing Some task and Sending Ack. through Async task

}

}

一旦这个线程挂起我的GCMBaseIntentService,在覆盖的onMessage()函数不叫..

在前提前感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值