我们在本地广播方面遇到了问题。出于某种原因,在 2 个机器人(我自己的手机 + 老板的手机)中它工作正常。在另一部手机(像我的老板一样的银河 s3 mini)和老板的平板电脑上,它却崩溃了。如果 tmp.sendBroadcast 命令是但不是马上程序崩溃(之后它仍然会有点)。但是它永远不会到达接收器。
public class UpdaterIntent extends IntentService {
...
Intent intent = new Intent("my-event");
intent.putExtra("action", "update_workplaces");
intent.putExtra("parameters", time);
LocalBroadcastManager'tmp=LocalBroadcastManager.getInstance(myInst);
if(tmp!=null) {
tmp.sendBroadcast(intent);
}
我已经注册了这样的接收器:
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
new IntentFilter("my-event"));
接收器是这样的:
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(myContext, "received message", Toast.LENGTH_SHORT).show();
}
}
};
我试图寻找可能是这样的某种原因。认为它可能是 putExtra 的参数太长,但即使将其修剪为两个字符串(一个在代码中看到,一个只是来自服务器的日期,如“2014-03-28 12:20:02”等,所以现在有不应该有超过一些硬编码限制的危险。
有什么建议么?不喜欢任何我想出的笨拙的解决方法。