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

Android 意图或直接访问不同类的公共变量,android,android-intent,Android,Android Intent,我注意到大多数Android程序员都使用Intent或广播接收器从一个类向另一个类发送短文本消息 如果我使用的实用程序类不扩展任何其他类,如活动或服务,为什么不直接访问实用程序类中的变量呢 UtilityClass utility = new UtilityClass(); String gotIt = utility.theOtherVariable; // direct access to variable in other class 这样做有什么不对吗?我宁愿这样做,也不愿使用意图

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

如果我使用的实用程序类不扩展任何其他类,如活动或服务,为什么不直接访问实用程序类中的变量呢

 UtilityClass utility = new UtilityClass();
 String gotIt = utility.theOtherVariable; // direct access to variable in other class
这样做有什么不对吗?我宁愿这样做,也不愿使用意图或广播接收器将小文本消息从实用程序类发送到活动类

编辑


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

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

是的,当然最好公开该类,并将您的where变量和函数公开所以你们可以在进一步的活动中使用,但你们都知道这种类型的函数和变量将在某些活动中使用

意图是一种将数据从一个活动切换到另一个活动的简单好方法。例如,如果您不想使用某个变量,而不是单个下一个活动,那么它将非常有用。意图的更重要用途是返回活动结果。例如,如果您想执行操作,但其取决于下一个活动,则意图将用作完成任务的强大工具


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

是的,公开类并将where变量和函数保持为公开类当然是件好事,这样您就可以在进一步的活动中使用。但您已经准备好知道,这种类型的函数和变量将在某些活动中使用

意图是一种将数据从一个活动切换到另一个活动的简单好方法。例如,如果您不想使用某个变量,而不是单个下一个活动,那么它将非常有用。意图的更重要用途是返回活动结果。例如,如果您想执行操作,但其取决于下一个活动,则意图将用作完成任务的强大工具

短而甜:这取决于需求。

试试这个

UtilityClass utility = new UtilityClass();
活动中初始化了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;
}
试试这个

UtilityClass utility = new UtilityClass();
活动中初始化了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;
}