0

我想在无线网络连接时启动服务。每隔几秒开始服务

如果我开始时的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

有你在清单文件 –

+0

中正确声明您的接收器是的。如果我使用startService启动它,它工作正常。我想每10秒启动一次服务。 –

+0

你能告诉我.. –

回答

5

你需要告诉报警管理器启动服务:PendingIntent.getService 的

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

感谢哥们,什么是我的白痴?!!! –

+0

那是我们所有人都遇到的。如果解决了这个问题,请标记为帮助他人的答案。 –

+0

@GregEnnis我使用getService然后它不开始我的服务,但是当我使用getBroadcast然后它启动服务 – nida

1

你已经使用PendingIntent.getBroadcast instread所以用这个 - >

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