为什么Android活动必须在intent extras中传递数据?

时间:2017-03-10 23:35:49

标签: android memory process

具体来说,我的问题是:Android应用程序的内存模型是什么?为什么我必须通过意图将数据从活动传递到另一个活动?整个申请流程没有共享内存吗?我很感激网上有关于此的任何好资源!

2 个答案:

答案 0 :(得分:0)

典型的应用程序在一个进程中,但与任何Java应用程序一样,应用程序中的各种对象/类都有自己的访问限制。每个活动都是一个单独的课程,将所有内容公之于众并不是一个好主意,因此您可以传递所需内容。

另一个原因是,有时您想要启动另一个Activity,并且不希望第一个Activity再次保留在内存中。因此,第一个可以传递它需要的东西,然后被销毁。

答案 1 :(得分:0)

首先,要启动一个Activity,你需要使用一个Intent,所以为什么不利用它并通过Intent传递数据。

关于共享内存,实际上Android中有一个名为SharedPreferences的接口,它允许您保存一些重要数据并访问它,就好像它是HashMap一样。您可以像这样保存数据:

Editor tEditor = SharedPreferences.edit(); tEditor.putString("key", "value"); tEditor.apply();

然后你可以像这样检索保存的数据:

SharedPreferences.getString("key", "");

您可以了解有关SharedPreferences here

的更多信息