【发布时间】:2016-01-07 12:28:55
【问题描述】:
通常建议使用以下解决方案:
问题
定义一个公共方法来设置变量有什么问题:
public class Activity1 {
private int var1;
public void setVar1(int val){
var1=val;
}
}
在 Activity2 中:
public class Activity2 {
Activity1.setVar1(4);
}
好像对静态和非静态变量都适用
EDIT1:
这是我当前项目的一个简单案例。在原始情况下,Activity2 连接到蓝牙 Hub 并接收多个传感器的数据。如果值发生更改,它应该将更改后的值(以及传感器 ID)传递给负责更新 UI 的Activity1。传感器的数量可以超过 100 个,更新周期在 100 毫秒的范围内,这意味着可运行对象每 100 毫秒读取传入的 BT 消息并检查更改。
EDIT2:
BroadcastReceiver 也是解决方案。但问题是:定义一个 set 方法来更改/更新变量有什么问题。这种方法在内存方面效率低下吗?它会使应用程序变慢吗?是不是代码不合适?
我只是想知道如果我定义 set 方法来更改活动变量,我会面临什么样的问题/效率低下。
【问题讨论】:
-
可能有类似的问题,但我还不满意。
-
为什么你需要改变这个值?尝试使用广播接收器。
-
@Sumant:请看Edit1
-
正如@Sumant 所说,您可以使用广播接收器(BroadcastReceiver、LocalBroadcastManager 类)
-
@ondermerol:绝对正确,BroadcastReceiver 是一个解决方案。但问题是:定义一个 set 方法来更改/更新变量有什么问题,这种方法在内存方面效率低吗?慢吗?是不合适的代码吗?我只是想知道如果我定义设置方法来更改活动变量会遇到什么样的问题/效率低下