假设我有一个活动MyMainActivity,让我们说复杂到一堆代码。
从另一个活动,访问公共变量或我实例化的方法:
MyMainActivity ma = new MyMainActivity();
ma.editVariableMethod();
String example_variable = ma.public_examplevariable;
当我实现MyMainActivity时,就像再次创建孔活动并将所有内容从MyMainActivity存储到内存中,这样,如果我启动MyMainActivity,它需要相同的内存量,或者它只是一个链接允许从MyMainActivity编辑变量?
答案 0 :(得分:3)
您无法实例化活动。框架必须照顾它。如果要使用公共方法,请将它们设置为静态,或者获取对活动对象的有效实例的引用。
编辑:
正如Squonk指出的那样,根据您的使用情况,将共享逻辑提取到另一个新类可能更好一点,至少在您知道自己在做什么之前。给“内部变量”甚至“活动”中的方法“完全访问”似乎都有效,但很可能不是正确的方法。
答案 1 :(得分:2)
在Android中的对象之间共享内存驻留对象是一种不好的做法,无论对象是什么。 Android无法确保它能够正常运行。大多数用例都有其他选择。在另一个Activity中“访问公共变量”的特定情况下,您可以调用startActivityForResult(),或者确保您的Activities存储他们想要在SharedPreferences中“共享”的数据等。 如果您有两个或多个使用相同方法的活动,则应首先考虑是否需要将类抽象为单独的对象。理想情况下,活动应该是委托给POJO的框架。