我曾经多次使用闹钟,但是我不能因为我的生活而触发......我做错了什么?我试过触发服务,BroadcastReceivers,一切。我试过从早期和未来(从现在起5秒)触发它。据我所知,它已被设置,它不会抛出错误而我的日志正在触发...但是AlarmReceiver中没有任何内容被触发。
public void setAlarm() {
Calendar exp = Calendar.getInstance();
exp.set(Calendar.SECOND, 5);
AlarmManager am = (AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, exp.getTimeInMillis(), PendingIntent.getService(mContext, 0, new Intent(mContext, AlarmReceiver.class), 0));
Log.i("", "Alarm set for " + DateFormat.format("MMMM dd, yyyy hh:mma", exp.getTime()));
}
}
public class AlarmReceiver extends Service {
@Override
public IBinder onBind(Intent intent) {
Log.d("", "onBind Tiggered");
return null;
}
public void onCreate() {
Log.d("", "onCreate Triggered");
}
}
答案 0 :(得分:2)
不要忘记将您的服务添加到您的清单!!
答案 1 :(得分:0)
如果你在一分钟的前5秒内运行它,那么时间将只是将来。
您应该使用calendar.add(field, value);
添加时间。
如果您所在的时区除了GMT,那么可能也会关闭日历。
要设置闹钟5秒钟,最简单的方法就是这样:
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (5 * 1000), pendingIntent);