背景
我目前正在编写一个 android 应用程序并且遇到了一些我无法弄清楚的事情。
我有 3 个Intent
,主要的启动意图,显示实时 gps 和加速度计数据的意图,以及显示收集的 gps 和加速度计数据的摘要的意图。
我遇到的问题是,当我切换方向时,重新创建意图以以不同的方向显示,从而调用构造函数,onCreate
并onStart
导致onResume
我的内部变量被重置,或者重新实例化并使用 GPS/Sensor apis 注册导致很多的不良数据。
我不想锁定屏幕方向,因为这只是一个 hack 修复,而不是正确解决问题的真正修复。
我曾尝试通过重载来创建服务IntentService
,但这是在我停止理解 android 如何操作其服务之前,以及如果 android 中的服务实际上是其他任何地方的服务。
第一次(错误)尝试
public class GPSLoggingService extends IntentService {
public GPSLoggingService() {
super("GPSLoggingService");
}
@Override
protected void onHandleIntent(Intent wi) {
问题
我将如何拥有一个以相同方式存在的类,该类允许我将计时、GPS 和传感器日志记录移动到后台服务,并使用来自意图的该服务的 api 来显示数据,并保留数据单独处理方向变化以及可能隐藏并带回前台的意图。
我如何让这个服务在应用程序启动时自动运行并持续到应用程序关闭。我将如何在此服务中创建 api?我是否只是在服务中创建方法并根据我的意图调用这些方法?或者是否有我必须使用的消息传递系统?