在android中,为什么捆绑使用而不是类?当然这不是很有效率。我发现它也会使事情变得非常混乱,因为你必须使用类中的大量静态键,这些键通常不是很好的范围。也不是很直观。
我确信可以使用泛型,所以你不必盲目地转换返回的对象。
Bundle
是Parcelable
。 Parcelable
对象旨在跨越进程边界。因此,您将看到Bundle
和其他Parcelable
对象在涉及进程间通信(IPC)时使用了很多,包括:
Intent
额外的,因为我们每次开始活动,启动服务等时都使用IPC。任意对象不能跨进程边界传递。
此外,Bundle
是一个框架类。所有应用程序以及核心操作系统都使用相同的定义。因此,Bundle
可以从一个应用程序传递到另一个应用程序,并且两个应用程序都可以使用Bundle
的内容(假设其内容本身是简单原语或基于其他共享类定义)。
即使您创建自己的类Parcelable
,当其他应用程序尝试访问该对象时,您可能会遇到问题,因为它们没有您的类定义。
对于您自己的应用程序 - 特别是如果您使用单活动UI方法 - 您需要使用Bundle
的唯一时间是保存的实例状态。如果您使用ViewModel
或处理配置更改的类似方法,则无需在保存的实例状态Bundle
中存储太多内容。