gpt4 book ai didi

android - 我如何使用 android 中的闹钟管理器获取工作日的重复闹钟?

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:20 26 4
gpt4 key购买 nike

嗨,我是 android 的新手,我正在开发警报应用程序,我需要在用户选择的不同日期的同一时间重复调用警报。我的意思是,如果我将闹钟时间设置为上午 10 点并将重复选项设置为星期日、星期一、星期六,闹钟将在每个星期日、星期一、星期六调用。

这里我使用代码调用闹钟

AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
Intent intent = new Intent(Alarm.this, OneShotAlarm.class); //here i am calling broad \cast receiver to invoke alarm

PendingIntent sender = PendingIntent.getBroadcast(Alarm.this, requestCode, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.set(Calender.HOUR_OF_DAY,10);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);

通过使用此代码,我在上午 10 点调用当前日期。但我的目标是需要在上午 10 点调用选定日期的闹钟。

这里我还有一个问题请帮忙解决这个问题。当我试图输入过去的时间时,将为当前时间调用警报。我怎么能给过去的时间。我的意思是,当我在上午 11 点时,我需要在上午 9 点上类。

如果有什么方法请给我建议。提前致谢。

最佳答案

请在您的广播接收器类中编写以下代码,它将解决您的问题。

public class MyBroadcastReceiver extends BroadcastReceiver {
DBAdapter mDba;
SQLiteDatabase mDb;
Ringtone rt;
MediaPlayer mp;
AlertDialog.Builder alertbox;
Context ctx;

@Override
public void onReceive(Context context, Intent intent) {

DBHelper mDbh = new DBHelper(context, null, null, 1);
mDb = mDbh.getWritableDatabase();
mDb.setLockingEnabled(true);
mDba = new DBAdapter(context);
mDba.open();
Cursor cr = mDb.query("mReminderEntry", null, null, null, null,
null, null);
if (cr.equals(null)) {
System.out.println("No Data Found");
} else {
Date d = new Date();
System.out.println("Current Hour is:- " + d.getHours());
System.out.println("Current Minute is:- " + d.getMinutes());
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
String today = null;
if (day == 2) {
today = "Monday";
} else if (day == 3) {
today = "Tuesday";
} else if (day == 4) {
today = "Wednesday";
} else if (day == 5) {
today = "Thursday";
} else if (day == 6) {
today = "Friday";
} else if (day == 7) {
today = "Saturday";
} else if (day == 1) {
today = "Sunday";
}
System.out.println("Today is:- " + today);

int system_hour = d.getHours();
int system_minute = d.getMinutes();
cr.moveToFirst();
for (int i = 0; i < cr.getCount(); i++) {
if (cr.getString(3).equals(system_hour + ":" + system_minute)
&& cr.getString(1).equals("Daily")) {

System.out.println("Matched");
Intent scheduledIntent = new Intent(context, MyScheduledActivity.class);
scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(scheduledIntent);

break;

} else if (cr.getString(3).equals(
system_hour + ":" + system_minute)
&& cr.getString(1).equals(today)) {

Intent scheduledIntent = new Intent(context, MyScheduledActivity.class);
scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(scheduledIntent);

System.out.println("Matched");

break;
} else {
System.out.println("No Matching");
}
cr.moveToNext();
}
}
cr.close();
mDba.close();
}
}

如果你对此有任何问题,请告诉我。

关于android - 我如何使用 android 中的闹钟管理器获取工作日的重复闹钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7357469/

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