Android 在活动之间传递数据时为什么使用Parcelable/Serializable

Android 在活动之间传递数据时为什么使用Parcelable/Serializable,android,serialization,process,parcelable,Android,Serialization,Process,Parcelable,我有一个问题,为什么我们在活动之间传递数据时使用Parcelable/Serializable。正如我在internet上阅读的文档中所述,当我们需要在进程之间传递数据时,可以使用Parcelable/Serializable。但同一应用程序的所有活动都在同一进程上运行。甚至由活动启动的服务也在同一进程上运行。那么,在这种情况下,我们为什么需要实现Parcelable/Serializable呢 包含包裹接收活动的应用程序可能会被销毁,然后重新创建,因此必须将数据保存到某种临时文件中 例如:

我有一个问题,为什么我们在活动之间传递数据时使用Parcelable/Serializable。正如我在internet上阅读的文档中所述,当我们需要在进程之间传递数据时,可以使用Parcelable/Serializable。但同一应用程序的所有活动都在同一进程上运行。甚至由活动启动的服务也在同一进程上运行。那么,在这种情况下,我们为什么需要实现Parcelable/Serializable呢

包含包裹接收活动的应用程序可能会被销毁,然后重新创建,因此必须将数据保存到某种临时文件中

例如:

  • 地块SenderActivityS处于活动状态
  • s调用包裹R接收活动R,具有可包裹的额外意图
  • r因电话中断
  • android从内存中删除包含rs的应用程序
  • 电话通话结束后,r通过在不同的进程/线程中以可分配的额外目的重新加载来重新创建

只有当intentparameter可以持久化到femp文件时,才能进行这种重新创建。

活动与服务:相同的进程并不意味着相同的线程。活动与活动:一个活动到另一个活动的生命周期是完全独立的。唯一的沟通方式是使用Budle。只要它在同一个进程上,这意味着所有组件共享相同的内存。因此,它是否在另一个线程上并不重要。从另一个线程更新对象的唯一方法是由第一个线程实例化它。在本例中,不是这样的,而是管理活动和服务实例的框架。“即使由活动启动的服务也运行在同一进程上”-默认情况下,是的。无论是谁启动服务,都不能(也不应该)假设它可能运行在哪个进程中。活动也是如此:你的活动将在你的应用程序自己的流程中运行,但想想当你开始一个你自己的应用程序无法处理的隐含意图时会发生什么,比如查看url或联系方式…。。。@lopez.mikhael所以你的意思是我们必须这样做,因为Android Sdk告诉我们这样做是对的?但理论上,我说的是真的,这意味着所有组件共享相同的内存,对吗?因为在我在Android中对共享内存进行了一些研究之前,我在一些有趣的帖子上看到了,人们在Android上使用C++,并创建了共享内存ZON.OHHH,所以这个<代码>意图。我以前从来没有注意过这个。那么,当这个临时文件被创建和销毁时?你能告诉我吗?谢谢