1

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

如果我使用的实用程序类不扩展任何其他类(如 Activity 或 Service),为什么不直接访问这样的实用程序类中的变量。

 UtilityClass utility = new UtilityClass();
 String gotIt = utility.theOtherVariable; // direct access to variable in other class

这样做有什么问题吗?我宁愿这样做,也不愿使用意图或广播接收器将小文本消息从实用程序类发送到 Activity 类。

编辑

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

4

3 回答 3

1

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

于 2013-02-04T05:38:20.490 回答
0

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

Intent 就像将数据从一个活动切换到另一个活动的良好且简单的方法。例如,如果您不想更多地使用某个变量而不是单个下一个活动,那么它将很有用。Intent 更无能的使用是返回活动结果。就像如果您想执行操作但它取决于下一个活动,那么 Intent 将用作完成您的任务的强大工具。

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

于 2013-02-04T05:53:27.163 回答
0

尝试这个,

UtilityClass utility = new UtilityClass();

在您的 .Use Utilityclass 对象中初始化 Utilityclass,Activity您将获得 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;
}
于 2013-02-04T05:53:49.003 回答