我目前正在开发具有 web 服务同步的 Android 应用程序,并且一切运行顺利,但我需要创建一个后台更新服务,用于将数据提取到数据库。过去几天,我一直在寻找如何完成此任务的信息,并找到了许多解决方案,这让我非常困惑。
我正在使用 asyncTask 获取数据,它启动 httpClient 并解析响应并将其保存到数据库中。之后,我发送了启动 Activity 的意图。简单的东西。
我想要一个服务,它会在应用程序未运行时获取数据。当用户启动应用程序时,可能会停止服务。
我设法编写了一个带有线程睡眠的服务类,但这似乎是一个非常糟糕的解决方案。
我发现的另一个解决方案是使用 pendingIntent 和广播接收器。
我不确定发送广播意图是否足够安全。如果有人将他的手机插入调试器,他会看到每一个意图广播,对吗?这意味着他/她可能会弄乱我的应用程序(例如发送广播意图,这将通知应用程序已获取新数据,而实际上并非如此)。
我也不想让我的服务被系统杀死。
有什么简单有效的解决方案吗?我很难找到适合我需要的东西,而且我对自己编写的 Android 编程很陌生。我找到了很多解决方案,但我真的不知道哪个是“正确”的解决方案,哪个是最有效的。