0
我是新到Android,这是我的代码,我存储在sqlite的报警值,报警铃声得到了正确的时间,但我得到我的警报不断将鸣响......报警持续响铃?
private void night() {
DatabaseHelper db = new DatabaseHelper(getContext());
ls = db.getAllinfo();
for (int i = 0; i < ls.size(); i++) {
Calendar c = Calendar.getInstance();
int hour = Integer.parseInt(ls.get(i).getSch_night_hour());
int mins = Integer.parseInt(ls.get(i).getSch_night_mins());
//int hour=20;
//int mins=06;
int cr_hour = c.get(Calendar.HOUR_OF_DAY);
int cr_mins = c.get(Calendar.MINUTE);
if (cr_hour >= hour) {
if (cr_mins == mins) {
try {
new AlarmReceiver(cr_hour,mins,10).setAlarm(getActivity());
} catch (Exception e) {
e.printStackTrace();
}
return;
} else {
Log.e("night", "for hr waiting");
}
} else {
Log.e("night", "for mins waiting");
}
}
return;
}
AlarmReciver.class
public void setAlarm(Context context) {
pf=new PrimaryFragment();
alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, Alarmclass.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, min);
calendar.set(Calendar.SECOND, sec);
// alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP,
// calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, alarmIntent);
alarmMgr.set(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), alarmIntent);
Uri alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(800);
ringtone = RingtoneManager.getRingtone(context, alarmUri);
ringtone.play();
// pf.showstatus();
//notification
ComponentName comp = new ComponentName(context.getPackageName(),
Alarmclass.class.getName());
startWakefulService(context, (intent.setComponent(comp)));
alarmMgr.cancel(alarmIntent);
}
请任何一个清楚我的疑问......等待着您的积极响应......
:(不wroking ......同样的问题... – Manish
alarmIntent = PendingIntent.getBroadcast(背景下,0,意图的PendingIntent .FLAG_CANCEL_CURRENT); –
试试这个要么工作或没有 –