gpt4 book ai didi

android - 如何在android中设置一次闹钟

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:11 25 4
gpt4 key购买 nike

我在做报警项目,

我想设置一次闹钟..但是我遇到了设置问题,

我的代码是;

public void loadCalender(String month) {

try {

Cursor cursor = null;

Database db = new Database(getApplicationContext());

cursor = db.getSelectedCalenderDetails(month);
if (cursor.getCount() != 0) {
if (cursor.moveToFirst()) {
do {
String text = cursor.getString(cursor
.getColumnIndex("event"));
String title = "News/Events";
String dates = cursor.getString(cursor
.getColumnIndex("date"));

String yr = dates.substring(0, 4);
int year = Integer.parseInt(yr);
String mon = dates.substring(5);
String mo = mon.substring(0, 2);
int months = Integer.parseInt(mo);
String da = dates.substring(9);
int day = Integer.parseInt(da);

// Ask our service to set an alarm for that date,
// this
// activity talks to the client that talks to the
// service
set_alarm(year, months, day, title, text);
System.out.println(dates);

} while (cursor.moveToNext());

}

}
cursor.close();
} catch (Exception e) {
e.printStackTrace();
}

// looping through All Contacts

}


public void set_alarm(int year, int month, int day, String title,
String text) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());

// etc
Calendar cal = Calendar.getInstance();
int hour = prefs.getInt("PREF_HOUR", 0);
int min = prefs.getInt("PREF_MIN", 0);
if(hour == 0 && min == 0){


cal.set(Calendar.MONTH, month - 1);
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_MONTH, 7);

cal.set(Calendar.HOUR_OF_DAY, 15);
cal.set(Calendar.MINUTE, min);
}else
{

cal.set(Calendar.MONTH, month - 1);
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_MONTH, hour);

cal.set(Calendar.HOUR_OF_DAY, min);
cal.set(Calendar.MINUTE, min);
}
Intent intent = new Intent(getApplicationContext(), AlarmActivity.class);
intent.putExtra("title", title);
intent.putExtra("text", text);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
getApplicationContext(), 1, intent,
PendingIntent.FLAG_ONE_SHOT);

AlarmManager alarmManager = (AlarmManager) getApplicationContext()
.getSystemService(getApplicationContext().ALARM_SERVICE);

/*
* alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
* pendingIntent);
*/

alarmManager.cancel(pendingIntent); // cancel any existing alarms

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),AlarmManager.INTERVAL_DAY,

pendingIntent);
}

这里总是启用警报推送,当应用程序打开时...

我在我的代码中做错了什么..请帮我设置一次性闹钟

提前致谢

最佳答案

您需要使用setAlarm() 方法而不是setRepeating()

alarmManager.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),pendingIntent);

关于android - 如何在android中设置一次闹钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15677669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com