-1

我是 android 开发的新手,我正在开发一个应用程序,可以安排在给定的特定时间发送短信。发送时间已保存在 SQLLITE DB 中。如果时间已达到 DB 时间,则应发送 SMS。我可以实现短信发送部分但不能检查时间。

我知道我需要使用 Android AlarmManager 并且我知道如何使用它。

我的问题是从数据库获取时间并使用设备时间检查检查。(服务类型)

4

3 回答 3

1

首先,我建议警报管理器使用起来太重了。我希望您使用触发您的任务的多线程编写同步类

postdelay 选项起到了警报管理器的作用。

您可以选择使该同步类成为服务类。

我遇到了几个关于这个 android 同步类的例子,其中一个是

Android:定期执行代码

接受的答案将帮助您编写一个触发您需求的同步类。

现在,您可以轻松地将 db 值放在 postdelay 函数中以实现动态延迟。

于 2013-10-28T07:43:01.583 回答
1

是的,需要使用 AlarmManager,但我认为继续查看数据库以检查有多少消息待发送以及天气是否有时间发送,这不是一个好方法。

毫无疑问,您需要为此编写后台服务,但是您认为这是一个好方法吗?

  • 该服务会一直在数据库中查找吗?(过多的资源消耗)
  • 如果要定期运行服务,您将设置什么时间段?(发送时间准确性的妥协)

它的 AlarmManager 最适合这个。当您现在进入数据库时​​,只需初始化一个警报。让你报警成为RTC_WAKEUP,这样即使手机关机也能发送消息。而且每件事都将由android自己处理。

是的,仍然可以使用数据库记录您的应用程序发送的所有消息,等待发送,成功发送,失败等。意味着在数据库中输入消息及其状态,并仅更新相应事件,例如将其更新为成功发送当警报触发时。

很长的故事,但希望这会有所帮助......

于 2013-10-28T07:45:25.007 回答
0

使用 GCM 意图服务。即使您的应用程序处于空闲状态或在后台,它也用于运行特定代码。在那个类中,编写一个处理程序或一个计时器,拥有您的代码。您可以尝试或研究这种方法

于 2013-10-28T08:21:41.370 回答