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

Mic*_*ick 0 android alarmmanager

你好,我是Android中的菜鸟.我已经看过这个如何在Android中循环或重复定期任务?

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

Piy*_*hra 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);
Run Code Online (Sandbox Code Playgroud)

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

public class DownloadService extends BroadcastReceiver 
Run Code Online (Sandbox Code Playgroud)

onReceive这个类的内部方法中,您可以执行定期重复任务.

这就是你可以启动警报的方法,并将此代码放在活动或其他一些回调的恢复中

am.setRepeating(AlarmManager.RTC_WAKEUP,
                System.currentTimeMillis(), globalData.serviceTimeInterval,
                sender);
Run Code Online (Sandbox Code Playgroud)