2

Androidアプリケーションでテキストメッセージをスケジュールしようとしています。「スケジュール」されないことを除いて、テキストメッセージが送信されています。これが同じコードです。

Intent myIntent = new Intent(ScheduleMessage.this, MyAlarmService.class);

Bundle bundle = new Bundle();
bundle.putCharSequence("Number", Number.getText().toString());
bundle.putCharSequence("Message", Message.getText().toString());
myIntent.putExtras(bundle);

pendingIntent = PendingIntent.getService(ScheduleMessage.this, 0, myIntent, 0);

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.SECOND,20);

alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);

Toast.makeText(getApplicationContext(), "Message: "+Message+" for Number: "+Number, 1).show();

明らかな何かが欠けていますか?強制終了やエラーはありません。それだけで、テキストメッセージは30秒後ではなく、すぐに送信されます(後で、時間、日などでスケジュールすることを検討します)。私を助けてください。私はAndroidにまったく慣れていません。

4

1 に答える 1

1

It depends on the exact current time when executing the code. :)

What you do is take the CURRENT time (e.g. 09:19:35), then set the seconds part to 20 (e.g. 09:19:20). For 40 seconds each minute, that's a time in the past, triggering your alarm immediately.

What you meant to write is:

calendar.add(Calendar.SECOND,20);

Notice the add method, where you wrote set.

于 2013-03-09T08:21:47.193 に答える