Android捆绑包:java.lang.NullPointerException
我正在尝试将Android捆绑包:java.lang.NullPointerException,android,bundle,parcelable,Android,Bundle,Parcelable,我正在尝试将包裹对象从活动发送到活动。下面的代码运行得很好,我对项目进行了更改,但没有对该部分进行更改,不知道为什么会停止工作 活动: Bundle bundle = new Bundle(); bundle.putParcelable("client", client); bundle.putParcelable("job", job); Intent intent = new Intent(this, EmailService.class); intent.putExtra("bundle
包裹
对象从活动
发送到活动
。下面的代码运行得很好,我对项目进行了更改,但没有对该部分进行更改,不知道为什么会停止工作
活动:
Bundle bundle = new Bundle();
bundle.putParcelable("client", client);
bundle.putParcelable("job", job);
Intent intent = new Intent(this, EmailService.class);
intent.putExtra("bundle", bundle);
intent.putExtra("type", "type1");
startService(intent);
服务:
protected void onHandleIntent(Intent intent) {
String type = intent.getStringExtra("type");
Bundle bundle = intent.getBundleExtra("bundle");
Client client = bundle.getParcelable("client");
...
行Client-Client=bundle.getParcelable(“客户”)代码>导致java.lang.NullPointerException:尝试获取空数组的长度
。客户端
对象在活动
中不为空,而捆绑
在服务
中不为空。我还能够在活动之间传递我的客户机对象,没有任何问题
为什么它停止工作了/我该如何修复它?您不必放置捆绑包。您可以使用intent将对象或数据放入。然后在活动的OnCreate中解析此对象。认为您需要序列化对象或dto
示例:
像这样开始活动
Intent-Intent=新的Intent(这个,EmailService.class);
意向书。putExtra(“客户”,客户);
意向。额外(“工作”,工作)代码>
然后在Oncreate of you Activity中进行如下解析
Client client = (Client) getIntent().getSerializableExtra("client");
Job job = (Job) getIntent().getSerializableExtra("job");
如果服务是一个新活动
,那么尝试将OnHandleContent
中的所有内容移动到onCreate
,它会感觉到您的OnHandleContent很快被调用,并且转换没有发生。您为什么使用intent.putExtra(“bundle”,bundle)代码>?您可以使用intent.putExtra(“客户机”,client);意向。额外(“工作”,工作)代码>相反。@Lamar服务在后台运行,我正在尝试从一个活动启动它。@String type=INTERENT.getStringExtra(“类型”):我现在删除了捆绑包:String type=INTERENT.getStringExtra(“类型”);正在崩溃。