2

ユーザーが指定した時間に AlarmManager アクティビティを開始したいのですが、時間文字列は標準形式 (例 - 7:30) で保存されます。AlarmManager を使用して、標準形式で保存されている長い値を操作するにはどうすればよいですか? -通常のミリ秒の代わりに?ミリ秒に変換せずにこれを行うことは可能ですか? もしそうなら - どのように?そうでない場合 - 2 番目に良い代替手段は何ですか? (時間文字列が標準形式の場合、アラームを起こす最も簡単な方法を知る必要があるだけです。)

ソース:

 String time = 7:30 
 Intent intent2 = new Intent(New.this, Start.class);
        PendingIntent pintent2 = PendingIntent.getActivity(Rules.this, 0, intent2,
                0);
        AlarmManager alarm2 = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarm2.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
                time != null ? 1000 : 0, pintent2);   

編集:

私が見つけた次の方法を使用しようとしています:

public Date getTimeFromTimeString(String time)
    {
        String[] splitStrings = time.split(":");

        Date timeDate = new Date();
        timeDate.setHours(Integer.parseInt(splitStrings[0]));
        timeDate.setMinutes(Integer.parseInt(splitStrings[1]));
        return timeDate;
    }

ただし、次のような警告が表示されます。

The method setMinutes(int) from the type Date is deprecated
The method setSeconds(int) from the type Date is deprecated
4

2 に答える 2

1

a を使用して、あなたをaSimpleDateFormatに解析します。そこからミリ秒を引き出します。StringCalendar

于 2013-04-23T00:55:25.160 に答える
0

このリンクにカレンダーのソースコードがあります https://code.google.com/p/ancal/source/checkout 予定、タスク、およびアラームを含むカレンダーが含まれています。それがあなたを助けるかどうかはわかりません。しかし、コードを調べると、やりたいことが見つかります。(このプロジェクトをダウンロードするには、SVN を作成する必要があります)

于 2013-04-24T12:13:53.413 に答える