0

イベントが発生する 5 分前に Alarm Manager がユーザーに警告するようにしようとしています。どうすればこれを行うことができますか?

たとえば、イベントの時刻は 10:00:00 で、5 分前の 9:55:00 にアラームを設定する必要があります。私の検索では、この例を見つけることができませんでした。

日付に基づいてより早い時間を設定できる日付またはカレンダー機能はありますか?

以下は不完全な擬似コードです

                            int index = eventTime.indexOf(':');
                String Hour =eventTime.substring(0, index);
                String Min = eventTime.substring(index + 1, index + 3);

                Calendar cal = Calendar.getInstance(); 
                int em = Integer.parseInt(eventMonth);
                int ed = Integer.parseInt(eventDay);
                int ey = Integer.parseInt(eventYear);
                int h = Integer.parseInt(Hour);
                int m = Integer.parseInt(Min);

                        int alertTime=5;
                        m=m+alertTime;

                            cal.set(Calendar.MONTH, em);
                cal.set(Calendar.YEAR, ey);
                cal.set(Calendar.DAY_OF_MONTH, ed);
                cal.set(Calendar.HOUR_OF_DAY, h);
                cal.set(Calendar.MINUTE, m);

                            AlarmManager mgr = new AlarmManager();

                             mgr.addAlarm(cal.getTime(), new AlarmListener() {
            // public void handleAlarm(AlarmEntry entry)
            Log.v("calander", cal.toString());
            // }
            // });
4

1 に答える 1

2

擬似コードは正しい方向に進んでいます。あなたのためにAlarmManagerあなたはこのようなことをしたいのですが:

AlarmManager alarm = (AlarmManager)getContext().getSystemService(Activity.ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pi);
//pi is a PendingIntent since you want it to run some code at the point it goes off
//Look up PendingIntent on the Android docs to understand what it does if you dont already know

を使用してあなたの日付のもののためにCalendar、あなたはそれを正しくやっています。このように使用するとよりクリーンになりますがset()

set(int year, int month, int day, int hourOfDay, int minute)

あなたの場合、それはこのように見えるかもしれません:

Calendar cal = Calendar.getInstance();
cal.set(ey, em, ed, h, m-5);

日付に基づいてカレンダーを作成するための何かが存在するかどうかについては、それをどのように実行するかによって異なります。あなたにとって、日付を入力し、分や時間などに応じて減算する以外に、本当にできることは他にないと思います。うまくいけば、私がしたことは理にかなっていて、実際にあなたがしようとしていることで動作することができます行う。

于 2012-08-08T03:42:41.443 に答える