我有一个Helper
类和方法,我通过javamail下载邮件。它在AsyncTask
内正常工作。
现在我想实现后台服务,该服务将能够:
我目前使用Service
创建了ScheduledThreadPoolExecutor
,我可以定期(每5分钟)运行一次。我只是不知道如何按需运行。
我应该使用Intent
服务,仅Service
,还是SyncAdapter
?什么是最好的选择?
这是我到目前为止所做的:
public class BackgroundLoadingService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
final ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
executor.scheduleAtFixedRate( new Runnable() {
@Override
public void run() {
Log.i("LocalService", "onCreate");
if (isOnline(BackgroundLoadingService.this))
{
getEmails(BackgroundLoadingService.this,"test",true);
}
}
}, 1, 60*5, TimeUnit.SECONDS );
super.onCreate();
}
@Override
public int onStartCommand( final Intent intent, final int flags, final int startId ) {
Log.i("LocalService", "onstartcommand");
return Service.START_STICKY;
}
}