网上查了N多资料,基本都是讲解AlarmManager要怎么用,但基本没怎么说什么情况会失效或被安卓系统杀掉。都说AlarmManager是系统级的服务,手机睡眠后都能唤醒CPU执行。但本人测试在手机不休眠时能正常功能,一旦休眠后过几个小时后不再重复定时执行。本人写了写入数据库的日志,从日志可以清晰看到定时服务确实没再执行过。下面是本人的代码,请高手指点啊!
在服务的onCreate方法中启动定时发送广播
AlarmUtil.startBroadcast(this, 1000*60*10, ConnectionReceiver.class, CommonFinal.CheckConnectionAction);
广播接收器代码
public class ConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//获取设备锁
WakeLockUtil.acquireWakeLock(context);
if (CommonFinal.CheckConnectionAction.equals(intent.getAction())) {
//在此方法内部判断能否需要释放设备锁。
SocketListener.getInstance().checkConnection();
//写入数据库日志。
new BroadcastLogDal(context).insert("接收到广播了!");
}
else if (intent.getAction().equals(ConnectivityMa