我想在连接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秒的间隔。
但是服务没有运行,我手动检查了它。 请告诉我我做错了什么?
答案 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);