Android GCMinentService+;向死线程上的处理程序发送消息

Android GCMinentService+;向死线程上的处理程序发送消息,android,google-cloud-messaging,Android,Google Cloud Messaging,我的应用程序工作正常,但我面临以下错误: 10-04 14:04:38.182: W/MessageQueue(8625): Handler (android.media.MediaPlayer$EventHandler){416ad6b0} sending message to a Handler on a dead thread 10-04 14:04:38.182: W/MessageQueue(8625): java.lang.RuntimeException: Handler (and

我的应用程序工作正常,但我面临以下错误:

10-04 14:04:38.182: W/MessageQueue(8625): Handler (android.media.MediaPlayer$EventHandler){416ad6b0} sending message to a Handler on a dead thread
10-04 14:04:38.182: W/MessageQueue(8625): java.lang.RuntimeException: Handler (android.media.MediaPlayer$EventHandler) {416ad6b0} sending message to a Handler on a dead thread
10-04 14:04:38.182: W/MessageQueue(8625):   at android.os.MessageQueue.enqueueMessage(MessageQueue.java:196)
10-04 14:04:38.182: W/MessageQueue(8625):   at android.os.Handler.sendMessageAtTime(Handler.java:473)
10-04 14:04:38.182: W/MessageQueue(8625):   at android.os.Handler.sendMessageDelayed(Handler.java:446)
10-04 14:04:38.182: W/MessageQueue(8625):   at android.os.Handler.sendMessage    (Handler.java:383)
10-04 14:04:38.182: W/MessageQueue(8625):   at android.media.MediaPlayer.postEventFromNative(MediaPlayer.java:1898)
10-04 14:04:38.182: W/MessageQueue(8625):   at dalvik.system.NativeStart.run(Native Method)
10-04 14:04:38.182: V/MediaPlayer(8625): back from callback
我已经看到了提议的解决方案,但它对我不起作用


有人有别的办法吗

在您的
gcminentservice
中,您可以使用
BroadcastReceiver
,而不是使用
处理程序,正如在GCM示例应用程序中所做的那样,并按照此答案中的建议:


请尝试此代码,希望它能有所帮助

您应该解释,问题在于侦听器试图在已死机的线程上被调用。IntentService在调用onHandleIntent方法时创建一个新线程,然后在onHandleIntent方法返回时立即终止该线程。在onHandleIntent中创建侦听器时,可能会在终止线程后返回结果。因此,将操作移动到处理程序中将创建一个新线程,该线程将保持结果的活动状态。
 // create a handler to post messages to the main thread
 Handler mHandler = new Handler(getMainLooper());
 mHandler.post(new Runnable() {
     @Override
    public void run() {
        Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_SHORT).show();
    }
 });