前几天在网上看了一个仿QQ的代码,我发现有一个问题,就是在activity里面需要不断的使用BroadcastReceiver 去接收收到的msg,但是有时候传过来的msg有可能是空的,因为可能是从后台转过来的,这样的话,使用String stringExtra = intent.getStringExtra("msg");就会报空指针的错误,然后直接强制被关闭任务了。这样应该如何解决?
解决方案 »
- ListView item滚动至顶部时不再滚动,其它item滚动消失
- 急急急!!!
- 我的真机启动不了了?????
- 为什么我的Fragment UI 显示不出来
- Android中如何不使用自带的Apache的包?
- dialog中转到Activity, Activity结束之后如何通知dialog刷新界面?startActivityForResult?
- popuwindows 如何实现边框 阴影 不是整个手机界面半透明
- 修改了framework的 IWifiManager.aidl文件,如何编译?
- 求助GPS定位功能
- Android studio 换成3.4代码变了
- 关于setting的string.xml里的product属性的问题
- android怎样设置界面颜色
这个没有"msg"会抛出null exception? 不是吧我理解你是说String stringExtra这个为null?如果这样那就处理下就好了
public void onReceive(Context context, Intent intent) {
TranObject msg = (TranObject) intent
.getSerializableExtra(Constants.MSGKEY);
if (msg != null) {//如果不是空,说明是消息广播
// System.out.println("MyActivity:" + msg);
getMessage(msg);// 把收到的消息传递给子类
} else {//如果是空消息,说明是关闭应用的广播
close();
}
}
};
这个是广播的代码,可是在实例化msg的时候就会报空指针的错误了,因为我从后台切换过来的时候是没有传msg的。但是刚开始登入的时候也传msg的,发消息也是传的,就是在后台切换过来的时候,其实是没有带参数的。
@Override
public void onReceive(Context context, Intent intent) {
TranObject msg = (TranObject) intent
.getSerializableExtra(Constants.MSGKEY);
if (msg != null) {//如果不是空,说明是消息广播
// System.out.println("MyActivity:" + msg);
getMessage(msg);// 把收到的消息传递给子类
} else {//如果是空消息,说明是关闭应用的广播
close();
}
}
};
这个是广播的代码,可是在实例化msg的时候就会报空指针的错误了,因为我从后台切换过来的时候是没有传msg的。但是刚开始登入的时候也传msg的,发消息也是传的,就是在后台切换过来的时候,其实是没有带参数的。
@Override
public void onReceive(Context context, Intent intent) {
TranObject msg = (TranObject) intent
.getSerializableExtra(Constants.MSGKEY);
if (msg != null) {//如果不是空,说明是消息广播
// System.out.println("MyActivity:" + msg);
getMessage(msg);// 把收到的消息传递给子类
} else {//如果是空消息,说明是关闭应用的广播
close();
}
}
};
这个是广播的代码,可是在实例化msg的时候就会报空指针的错误了,因为我从后台切换过来的时候是没有传msg的。但是刚开始登入的时候也传msg的,发消息也是传的,就是在后台切换过来的时候,其实是没有带参数的。
这段代码应该不会报空指针异常才对,除非intent是空的。
或者是不传值时,打印出来的stringExtra 是null