首页 > 解决方案 > AlarmManager 不调用服务

问题描述

我已经设置了一个 AlarmManager 来重复调用我的服务来更新我的数据库。但似乎我的服务永远不会被这个 AlarmManager 调用。我将 system.out 投入使用,但它从未在输出中打印。

我的 MainActivity 中有这段代码:

Intent intent = new Intent(getApplicationContext(), ServiceAreaAlarmReceiver.class);

final PendingIntent pIntent = PendingIntent.getBroadcast(this, ServiceAreaAlarmReceiver.REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);

long firstMillis = System.currentTimeMillis();

AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);

alarm.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstMillis + 60000, 60000, pIntent);

这是我的清单:

<receiver
    android:name=".service.ServiceAreaAlarmReceiver" />

<service
    android:name=".service.UpdateDatabaseService"
    android:exported="false" />

这是我的服务:

public class ServiceAreaAlarmReceiver extends BroadcastReceiver {

    public static final int REQUEST_CODE = 12345;

    @Override
    public void onReceive(Context context, Intent intent) {

        System.out.println("got here");
        context.startService(new Intent(context, UpdateDatabaseService.class));
    }
}

标签: androidservicealarmmanager

解决方案


推荐阅读