gpt4 book ai didi

android - GCMIntentService 抛出 "Sending message to a Handler on a dead thread"错误

转载 作者:行者123 更新时间:2023-11-30 02:54:39 33 4
gpt4 key购买 nike

所以大部分问题都在标题中。

我已经在 GCMIntentService 中设置了所有内容,以便在一个函数中执行 sendbroadcast(intent)。但是当我尝试在另一个中执行此操作时,我收到此错误“向死线程上的处理程序发送消息”。代码是完全一样的,对一个人来说是完美的,对另一个人来说是完美的,有什么想法吗?

@Override
protected void onMessage(Context context, Intent intent) {
Log.i(TAG, "Received message");
final String message = intent.getExtras().getString("clicked");
if(message == null)
Toast.makeText(context, getResources().getString(R.string.message_null), Toast.LENGTH_SHORT).show();
else if(message.split("\\|")[0].equals("updateMessageInvisible")) {
onReceiveUpdateMessageInvisible(message);
} else if(message.split("\\|")[0].equals("message")) {
onReceiveMessage(message);
}
}

这个很好用。

private void onReceiveMessage(String message) {
//Stuff happening (accessing database mostly)

//Notify listView of Message that it has new data
Intent i = new Intent("com.crisis.app.NEW_MESSAGE");
sendBroadcast(i);
}

这个不行。

private void onReceiveUpdateMessageInvisible(String message) {
//Stuff happening (accessing database again)

//Notify listView of Message that data has been updated
Intent i = new Intent("com.crisis.app.UPDATE_MESSAGE");
sendBroadcast(i);
}

我的广播接收器类:

public final class ReceiveMessage extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
System.out.println("NOTIFY DATA CHANGED");
//Stuff happening
//Set adapter with array of message
adapter = new MessageRowAdapter(context, values);
listview.setAdapter(adapter);
}
}

我当然是在onPause和onResume中注册和注销

因此,如果有人知道为什么它在一种情况下有效,而在没有区别的情况下在另一种情况下却无效...

也许是关于您只能在一个 Intent 中执行一个 senBroadcast?

提前致谢!

已编辑:添加GCMIntentService的onMessage函数

最佳答案

解决了我的问题。

这是因为我在 UIThread 之外调用 Toast。Asynctask 没有解决它,你必须使用:

new Thread() {
public void run() {
mainActivity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(context, getResources().getString(R.string.message_null), Toast.LENGTH_SHORT).show();
}
});
}
}.start();

关于android - GCMIntentService 抛出 "Sending message to a Handler on a dead thread"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23500034/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com