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