在android中,使用BroadcastReceiver、TimerTask和AsyncTask每隔几分钟发送一封电子邮件的最佳方式
我有一个广播接收器,可以检测Sim卡何时更换。我想每5分钟左右发送一封带有手机位置的电子邮件。我有三个选择:在android中,使用BroadcastReceiver、TimerTask和AsyncTask每隔几分钟发送一封电子邮件的最佳方式,android,service,android-asynctask,broadcastreceiver,intentservice,Android,Service,Android Asynctask,Broadcastreceiver,Intentservice,我有一个广播接收器,可以检测Sim卡何时更换。我想每5分钟左右发送一封带有手机位置的电子邮件。我有三个选择: 当Sim卡被更改时:从broadcastReceiver启动服务,这将启动TimerTask。然后TimerTask启动一个发送电子邮件的异步任务 更改Sim卡时:与第1点相同,但我启动的是IntentService,而不是服务 更改Sim卡时:从BroadcastReceiver启动服务,启动AlarmManager,然后启动AsyncTask 你能告诉我哪一个更好更安全吗? 谢谢大家
谢谢大家! 您可以将
IntentService
与AlarmManager
结合使用。当sim卡更换时,您的广播接收器应启动您的意向服务,然后服务发送电子邮件并安排下一次发送。查看并确保您知道何时停止发送电子邮件以避免耗尽电池电量
您的服务应该如下所示:
@Override
protected void onHandleIntent(Intent intent)
{
// send email.
// check whether or not sending next time
if(canSendNextTime()){
scheduleNextUpdate();
}
}
非常感谢。我试试这个