1

アラームアプリケーションを作成しています。そのためには、入力として時間を指定する必要があります。次のコードを試していますが、アラームがトリガーされません。私はオンラインで検索し、コードを大幅に変更しましたが、それでも運がありません。

誰かが私を助けることができますか?前もって感謝します。

Intent intent = new Intent(NapAppActivity.this, OnetimeAlarmReceiver.class);
 PendingIntent pendingIntent = PendingIntent.getBroadcast(NapAppActivity.this, 1,  intent, 0);

     Calendar cur_cal = new GregorianCalendar();
    cur_cal.setTimeInMillis(System.currentTimeMillis());

    Calendar cal = new GregorianCalendar();
    cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
    cal.set(Calendar.HOUR_OF_DAY, 12);
    cal.set(Calendar.MINUTE, 17);
    cal.set(Calendar.SECOND, cur_cal.get(Calendar.SECOND));
    cal.set(Calendar.MILLISECOND, cur_cal.get(Calendar.MILLISECOND));
    cal.set(Calendar.DATE, cur_cal.get(Calendar.DATE));
    cal.set(Calendar.MONTH, cur_cal.get(Calendar.MONTH));

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
4

2 に答える 2

2

cal=Calendar.getInstance()GregorianCalendar コンストラクターを使用する代わりに、現在の日付/時刻を取得するために使用する必要があると思います。

次に、HourOfDay と Minutes を設定するだけで、他のフィールドには触れないでください。

于 2011-10-01T19:06:39.497 に答える
2
<receiver android:name=".OnetimeAlarmReceiver" android:process=":remote" />

マニフェストでレシーバーを宣言しましたか。

また、Receiver 名の前に完全なパッケージ宣言を置き、. レシーバーが別のパッケージに入っている場合は、「。」を使用しました。上記の宣言で...

よろしくお願いします。

アルピット

于 2011-10-01T19:15:33.923 に答える