我们在本地广播方面遇到了麻烦。由于某些原因,在2个androids(我自己的手机+老板的手机)中,它工作正常。但是在另一部手机(像我的老板一样的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”等),所以现在不应有超过某些硬编码限制的危险。
有什么建议么?我不喜欢笨拙的 hell 般的解决方法。
最佳答案
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
关于android - Android LocalBroadcast导致应用崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22707703/