【发布时间】:2014-02-24 13:00:03
【问题描述】:
我想在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 秒作为间隔。
但是服务没有运行,我手动检查了。 请告诉我我做错了什么?
【问题讨论】:
-
您是否在清单文件中正确声明了您的接收方
-
是的。如果我使用 startService 启动它,它工作正常。我想每 10 秒启动一次服务。
-
-
这会很快耗尽设备的电池电量。
-
@VigneshBala 尝试 greg 代码,让我知道问题所在
标签: android android-service alarmmanager android-pendingintent