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