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();
}
});