我要做的是编写一个应用程序,该应用程序登录到我的电子邮件帐户并在用户设置的定期时间检查收件箱和已发送项目。
我有一些疑问,所以我希望这不会因为它的长度而被忽略。
- 我想我需要在手机完成启动后启动
BroadcastReceiver
。AlarmManager
- 我需要
AsyncTask
从主 UI 线程中读取电子邮件。但是,我读Service
的 s 也运行在单独的线程上? - 从中(为什么这是
PendingIntent
不正常的?)我应该选择还是?AlarmManager
PendingIntent
Intent
getBroadcast()
getService()
- 我对整个过程的理解是:
- 手机完成启动,触发广播
BroadcastReceiver
获取事件并设置AlarmManager
AlarmManager
Intent
在特定时间开火BroadcastReceiver
获取事件BroadcastReceiver
开始Service
Service
开始AsyncTask
那正确吗?似乎很啰嗦。如果我选择getService()
而不是getBroadcast()
asPendingIntent
我可以跳过在上述步骤中调用第二个广播,并直接转到Service
?
重读这篇我想我没有问具体问题,但我更想知道我的理解是否正确或者我是否完全迷失了(我觉得我是!)
更新:我想我会使用他们听起来不错的意图服务,因为我可以直接从警报管理器中调用它们。然而,阅读它似乎服务可能不会保持足够长的时间,所以我可能不得不使用广播接收器才能使用唤醒锁,我现在正在进一步调查。
Commonsware 编写了一个名为 WakefulIntentService 的有用包装器,我想我会用它来帮助我自己做唤醒锁的事情