receiverUser = (User) getIntent().getSerializableExtra(Constants.KEY_USER);这个getSerializableExtra函数有什么用
时间: 2024-10-24 11:06:23 浏览: 21
`getSerializableExtra()`函数是Android中用于从Intent中获取已序列化的对象的方法。当我们在Activity之间传递复杂的对象时,通常会先序列化这些对象,以便于跨进程或线程传递。这里,`Constants.KEY_USER`是预定义的一个常量,代表我们想要提取的序列化对象的键。
接收端通过调用`getSerializableExtra()`并传入相应的键名(如`Constants.KEY_USER`),可以从Intent中获取到之前序列化过的`User`对象。如果`User`实现了`Serializable`接口,那么这段代码就能成功解耦并还原对象,便于进一步的操作和处理。
示例代码:
```java
// 在发送者 Activity 或 Service 中
User userToPass = ... // 创建 User 对象
Intent intent = new Intent(this, TargetActivity.class);
intent.putExtra(Constants.KEY_USER, userToPass); // 序列化并传递
// 在接收者 TargetActivity 中
User receiverUser;
try {
receiverUser = (User) getIntent().getSerializableExtra(Constants.KEY_USER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
```
阅读全文