我有一个 android 应用程序,我目前正在使用 AsyncTask 来监控 android SMS database/provider
(“content://sms”)。每当启动主要活动时都会运行
此程序。AsyncTask
现在,我希望能够异步执行此操作,即,每当发送或接收 SMS 时更新我的数据库。
我目前正在使用IntentService
这样做,AlarmManager
用于设置每 2 分钟重复运行一次。
我还尝试了一个“STICKY”服务,该服务在发送或接收 SMS 时 使用 aContentObserver
来运行线程。handler.post()
我的疑问是:
1)哪种方法更有效?实现“STICKY”服务或 IntentService 方法的那个?
2)如果我使用handler.post(),想象以下场景:收到一条短信并运行线程。当这个线程运行时,如果收到另一条短信,是否会创建一个新线程并与旧线程同时运行?
3)除了我到目前为止尝试过的方法之外,还有其他方法吗?
谢谢。