【发布时间】:2012-12-18 03:38:34
【问题描述】:
我正在开发一个 Android 应用程序。 一旦启动,我将创建一个扩展 IntentService 并实现 SensorEventListener 的后台服务。 该类负责监听位置更新和传感器更新,例如来自加速度计的更新。
然后我创建主窗口并检查例如 GPS 是否启用以及其他一些内容。如果一切正确,我从主 Activity 开始另一个。 我是这样创建的:
Intent startDrIntent = new Intent(MainActivity.this, DrActivity.class);
MainActivity.this.startActivity(startDrIntent);
现在我想在 DrActivity 中显示坐标和加速度计值。
在活动中显示这些值的最佳方法是什么? 我能想到这两个:
1) 不知何故,应用程序中的活动处理程序以及每个传感器上的传感服务类或位置更新使用应用程序处理程序(可能是静态的?)并更改 TextView(s) 的值
2) 在应用程序中拥有坐标和传感器的公共静态值,然后从 Activity 中使用它们(这里的问题是如何让 Activity 知道有更新。
3) 有更好的吗?
我不能使用 AsyncTask,因为后台服务将被多个活动消耗,而不仅仅是一个。 提前致谢!吉列尔莫。
【问题讨论】:
-
为什么没有一个单例对象作为传感器侦听器,活动在其中注册以侦听事件。每次事件到达时,它都会传递给正在监听的活动。