1

特定の時間に発砲する通知を取得しようとしています。時間を設定する「alCal」変数があるので、AlarmManagerを使用する必要がないことに気付きました。alCalをLongに変換しSystem.currentTimeMillis();て、fireTime変数の代わりに使用することは可能でしょうか?もしそうなら、どのように私はalCalをLongに変換しますか?これが私の現在のコードです:

            //---use the AlarmManager to trigger an alarm---
        AlarmManager aMan = (AlarmManager) getSystemService(ALARM_SERVICE);

            //---get current date and time---
        Calendar alCal = Calendar.getInstance();
        //---sets the time for the alarm to trigger---                       
        alCal.set(Calendar.HOUR_OF_DAY, 23);            
        alCal.set(Calendar.MINUTE, 41);                
        alCal.set(Calendar.SECOND, 00);

        Intent noteIntent = new Intent(this, Splash.class);
        PendingIntent pendI = PendingIntent.getActivity(this, 0, noteIntent, 0);
        long fireTime = System.currentTimeMillis();
        String noteBody = "notification body";
        String noteTitle = "notification title";
        Notification note = new Notification(R.drawable.noteicon, noteTitle, fireTime);
        note.setLatestEventInfo(this, noteTitle, noteBody, pendI);
        note.defaults = Notification.DEFAULT_SOUND;
        noteman.notify(uniqueID, note);
        //---sets the alarm to trigger--- 
        aMan.set(AlarmManager.RTC_WAKEUP, alCal.getTimeInMillis(), pendI); 
        finish();

わかりました。alCalをlongに変換できないようです。そのため、AlarmManagerを使用する必要があると思います。上記のコードを前提として、AlarmMangerが指定された時間に通知を発行するようにコードを変更するにはどうすればよいですか?私はAndroidとJavaに慣れていないので、実際にはスラウションを見ていません。新しいNotification呼び出しのどこかでalCalを呼び出す必要があると思いますが、その方法がわかりません。Eclipseは、fireTimeをalCalに置き換えることはできないと言っているので、次に何を試すべきかわかりません。

4

1 に答える 1

0

アラームマネージャーを使う必要がないことに気づきました

はい、そうします。

時間を設定する「alCal」変数があるからです。

それがjava.util.Calendarオブジェクトです。それ自体ではNotification、特定の時間にコード(の表示など)を実行しません。

alCalをLongに変換して、System.currentTimeMillis()の代わりに使用することは可能でしょうか。fireTime変数として?もしそうなら、どのように私はalCalをLongに変換しますか?

を呼び出しgetTimeInMillis()ます。

コードは「Androidで特定の時間に起動するように通知を設定する」ではないことに注意してください。すぐに表示さNotificationれ、さらに将来の特定の時間にアクティビティを呼び出すようにアラームを設定します。

于 2012-04-22T10:38:53.070 に答える