我们通常可以在Android中使用公共变量来跳过使用意图吗?

时间:2016-07-15 14:38:55

标签: android android-intent

我们多次使用Intent将数据发送到Fragment或从子进程中获取数据。我们不能把数据放在公共变量中吗? 例如,想象一下我们是否想从对话框中获取用户数据。

我只是在谈论“可能性”。毫无疑问,它优于使用意图来实现代码清洁或安全......

3 个答案:

答案 0 :(得分:1)

你没有将意图发送给片段,如果你想使用对象实现Parcelable所需的对象,那么你可以在意图包中发送对象

答案 1 :(得分:1)

我认为他的意思是发送(本地)广播...这是根据我的理解这样做的正确方式。

当然可以使用公共(甚至受保护)字段并使用以下内容从子片段访问它们:

假设您的父活动已命名为" MainActivity"

((MainActivity) getActivity()).mMyPublicField

或:

((MainActivity) getActivity()).getPublicMethod()

- 但我绝不会建议这样做! 特别是当你也开始操作公共字段时,当不同的线程在进行时,你会遇到难看的麻烦。

如果需要在整个应用程序中共享某些内容,请使用 SharedPreferences (如果您还想将其存储到下一个应用程序会话中),或者正如我先提到的那样 LocalBroadCastManager

答案 2 :(得分:1)

public class MyActivity extends Activity {
    public int someValue = 1;
}

在任何以MyActivity为主机的片段中,您都可以访问((MyActivity) getActivity()).someValue