1
在我的演示項目中,我正在使用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()函數不叫..
在前提前感謝