我们在本地广播方面遇到麻烦。由于某种原因,在2个机器人(我自己的手机+老板的手机),它工作正常。在另一部手机(像我的老板这样的Galaxy 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”等所以现在那里不应该超过一些硬编码限制的危险。
有什么建议吗?不喜欢任何解决方法,我已经想到了笨拙的地狱。
答案 0 :(得分:0)
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);