如何在后台Android中重复您的任务

时间:2014-04-18 16:14:35

标签: android alarmmanager

你好我是Android中的菜鸟。我已经看过How to loop or to repeat periodically task in Android?

我想知道您可以在后台Android中重复任务的不同类型。我只知道AlarmManager您可以在特定时间后执行代码的地方。还有其他方法可以做同样的事情。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

AlarmManager将是一个很好的选择,因为它是一个系统服务,你不需要为此创建额外的服务。要启动AlarmManager,您需要一个待处理的意图和一个后台任务来完成繁重的工作。

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, DownloadService.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);
boolean alarmUp = (PendingIntent.getBroadcast(ViewPagerActivity.this,
    0, new Intent(ViewPagerActivity.this, DownloadService.class),
    PendingIntent.FLAG_NO_CREATE) != null);

if (alarmUp)
    am.cancel(sender);

您可以在初始化活动或onCreate()时使用此代码。其中DownloadService是BroadcastReceiver Class的扩展。

public class DownloadService extends BroadcastReceiver 

在此类的onReceive方法内,您可以执行定期重复任务。

这就是你如何启动闹钟并将此代码放入活动或其他回调的简历中

am.setRepeating(AlarmManager.RTC_WAKEUP,
                System.currentTimeMillis(), globalData.serviceTimeInterval,
                sender);