【发布时间】:2013-04-29 19:47:24
【问题描述】:
我想询问有关使用参数调用 Activity 的问题。我看过很多关于它的例子。但我想问一个解释,为什么用自定义参数创建(调用)一个活动以某种方式“不容易”或“不简单”。
我看过很多帖子,比如this 等。人们传递字符串但不传递自定义对象。是的,他们通过实现可序列化和可解析的方法来传递自定义对象,但这似乎效率不高(我可能错了,因为没有看到它)。对于 final 声明的类来说,要做的工作就更多了。
当我们用putExtras(String name, String value)传递String时,为什么没有定义像putExtras(String name, Object object)这样的函数?这样传递任何自定义对象不是更容易吗?
以及关于过程的复杂性,在here的帖子中给出了解释
因为应用程序处于不同的进程中,并且具有单独的内存 地址空间,您不能只将指针(引用)发送到内存块 在您的进程中,并期望它在另一个进程中可用。
但是,我仍然找不到让我满意或帮助我意识到我没有看到的原因。好的,假设应用程序处于不同的进程中,并且它们的内存空间不同。那么我们是否将要传递的数据复制到另一个活动的内存空间中?或者至少,不应该属于同一个应用程序的活动(我相信应用程序中的活动有一些共同的地址到它的应用程序)具有公共内存空间,以便它们可以轻松地共享或传递数据?
我只是想澄清一下。我知道 Android 不应该与 Windows 开发相比较,但感觉如果事情更简单的话会更好。我知道我在这方面遗漏了一些东西,否则每个人都知道更简单会更好。但是是什么阻碍了事情的顺利通过呢?
谢谢。
【问题讨论】:
-
我同意这一点,并且只能得出结论,Android 的构建方式相当愚蠢。强制简单对象可序列化只是为了将它从一个 Activity 传递到另一个 Activity 只是......疯狂。当然,CommonsWare 解释了原因,但如果我作为 Android 操作系统的设计师工作,并且我想出了这样的事情,我会解雇自己并禁止自己再次编码 ;-)
标签: android android-activity arguments