android - 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));
}
}
解决方案
推荐阅读
- javascript - Javascript 表单验证可能不起作用
- tableau-api - Tableau GAP & 预测公式 & 按月+季度显示
- php - 为什么我的注销功能在 codeigniter 中不起作用?
- java - 通过 Haspmap 求解单个数字,返回始终为“@”
- angular - 尝试使用角度参数提取值
- c# - 映射列表
> 在 C# 中自定义对象 - javascript - 数组中的变量名列表
- python - 具有两个参数共享的全局拟合
- python - Python - 从 mpl_connect 处理程序调用时,ProcessPoolExecutor 挂起
- c - 为什么输出不是 ASCII 值 1?