我是Android开发的新手,我正在开发一个应用程序,它安排短信发送给定的特定时间。发送时间已保存在SQLLITE DB中。如果时间已到达DB时间,则应发送SMS。 我可以实现短信发送部分,但不能检查时间。
我知道我需要使用Android AlarmManager,我知道如何使用它。
我的问题是从数据库中获取时间并使用设备时间检查检查。(服务种类)
答案 0 :(得分:1)
首先,我建议使用Alarm Manager太重了。 我希望你使用mutithreading编写一个触发你的任务的同步类
postdelay选项可以实现警报管理器的技巧。
您可以选择将同步类作为服务。
我遇到了几个关于android的同步类的例子,其中一个是
Android: execute code in regular intervals
接受的答案将帮助您编写触发您需求的syn类。
现在很容易将db值放在postdelay函数中以实现动态延迟。
答案 1 :(得分:1)
是的,需要使用AlarmManager,但我认为继续查看数据库以检查有多少邮件待发送以及天气有没有时间发送,这不是一个好方法。
你需要为此写一个背景service,但你认为这是一个好方法吗?
它的AlarmManager最适合这个。刚刚在db中输入时初始化警报。让你报警为RTC_WAKEUP,这样即使手机关机也可以发送信息。而且每件事都将由android本身处理。
是的,可以使用数据库仍然记录您的应用程序发送的所有消息,等待发送,发送成功,失败等。意味着在数据库中输入消息及其状态,并更新相应的事件,如更新它在触发警报时成功发送。
长篇故事,但希望这会有所帮助...
答案 2 :(得分:0)
使用GCM Intent Service。即使您的应用处于空闲状态或在后台运行,它也可用于运行特定代码。 在该类中,使用您的代码编写处理程序或计时器。 您可以尝试或研究这种方法