每隔几秒钟开始服务

时间:2014-02-24 13:00:04

标签: android android-service alarmmanager android-pendingintent

我想在连接wifi网络时启动服务。

如果我在连接wifi时启动服务,请使用

context.startService(intent_alarm);

它工作正常。

我希望在接收广播后每10秒启动一次服务。所以我使用了 AlarmManager

以下是代码:

public class NetworkChangeReceiver extends BroadcastReceiver{
        public static AlarmManager am;
        public static PendingIntent sender;
      @Override
         public void onReceive(final Context context, final Intent intent) {
                 Intent intent_alarm = new Intent(context, MyService.class);
                    sender = PendingIntent.getBroadcast(context, 0, intent_alarm, 0);
                    am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
                    long l = System.currentTimeMillis();
                    l += 3600L;
                    am.setRepeating(AlarmManager.RTC_WAKEUP,l, 3600L, sender);
                    //context.startService(intent_alarm);
    }
    }

我想在这里我给了3.6秒的间隔。

但是服务没有运行,我手动检查了它。 请告诉我我做错了什么?

2 个答案:

答案 0 :(得分:5)

您需要告诉闹钟管理员启动您的服务:

Intent intent_alarm = new Intent(context, MyService.class);
sender = PendingIntent.getService(context, 0, intent_alarm, 0);

答案 1 :(得分:1)

您使用了PendingIntent.getService的PendingIntent.getBroadcast instread 所以用这个 - >

Intent intent_alarm = new Intent(context, MyService.class);
sender = PendingIntent.getService(context, 0, intent_alarm, 0);