正确执行定期后台任务的方法

时间:2015-06-01 10:28:45

标签: java android service alarmmanager

所以我需要在后台执行定期任务,即使我的应用已关闭。我是通过使用AlarmManager创建我的服务并在一段时间内重新启动它来完成的:

public class MyService extends Service
{
    @Override
    public int onStartCommand(Intent intent, int flags, int startId)
    {
        Log.i("MyService","On Command!");
         stopSelf();

        return START_NOT_STICKY;

    }

正如您所看到的,我的服务旨在启动时不粘,做他的工作并立即停止。

Shedule(仅限快速测试1秒,实际上会导致唤醒):

@Override
    public void onDestroy()
    {
        AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);
        alarm.set(

                alarm.RTC_WAKEUP,
                System.currentTimeMillis() + (1000),
                PendingIntent.getService(this, 0, new Intent(this, MyService.class), 0)
        );
    }

我的服务将在启动或警报时启动(目前每1秒)。但是,我不确定这是否是正确的方法来做我想要的。我注意到,大多数第三方应用程序都使用粘性服务,并且它们一直驻留在内存中。

所以我的问题是,我什么时候应该使用粘性服务?

0 个答案:

没有答案