意图或直接访问不同类的公共变量

时间:2013-02-04 05:29:54

标签: android android-intent

我注意到Android中的大多数程序员使用Intent或广播接收器将短文本消息从一个类发送到另一个类。

如果我使用的实用程序类没有扩展任何其他类,如Activity或Service,为什么不直接访问实用程序类中的变量,如下所示。

 UtilityClass utility = new UtilityClass();
 String gotIt = utility.theOtherVariable; // direct access to variable in other class
这样做有什么不妥吗?我宁愿这样做,而不是使用intent或广播接收器将实用程序类中的小文本消息发送到Activity类。

修改

除了类的实例之外,您还可以将变量设置为静态,即从一个活动传递到另一个活动。在任何一种情况下,我都没有看到使用额外的意图或广播接收器将信息从一个活动传递到另一个活动的任何价值。

3 个答案:

答案 0 :(得分:1)

是的当然你可以使用它即使你使用自己的数据结构也很好,但它取决于需求和场景。 例如,假设您正在从gps接收数据,并且您需要在应用程序中的这些数据在5-6个位置,那么设计一个类并将gps数据存储在类的变量中并在您想要的任何地方访问它是很好的。方式

答案 1 :(得分:0)

当然是公共课并将变量和功能公开保存在公共课程中是好事,所以你可以在进一步的活动中使用。但是你们都知道这种类型的函数和变量将在某些活动中使用。

Intent就像将数据一个活动切换到另一个活动的好方法一样。如果你不想再使用某个变量然后单个下一个活动那么它就会很有用。更多无意义的使用Intent是返回活动结果。就像你想要执行动作但它依赖于下一个活动一样,Intent将使用强大的工具来完成你的任务。

简短而甜蜜:这取决于要求。

答案 2 :(得分:0)

试试这个,

UtilityClass utility = new UtilityClass();

Activity中初始化的Utilityclass。使用Utilityclass对象,您将获得utliityclass中的所有值。

实施例,

public class UtilityClass{
public static string gotIt = "value";
}  

public class MainActivity extends Activity {
UtilityClass utility = new UtilityClass();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
       setContentView(R.layout.xml);
 String str =  utility.gotIt;
}