如何安排稍后在android中发送的短信?

时间:2013-03-09 07:26:59

标签: android sms alarmmanager

我正在尝试在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很新。

1 个答案:

答案 0 :(得分:1)

这取决于执行代码时的确切当前时间。 :)

你做的是接受CURRENT时间(例如 09:19:35 ),然后将seconds部分设置为20(例如 09:19: 20 的)。每分钟40秒,这是过去的一段时间,立即触发你的闹钟。

你打算写的是:

calendar.add(Calendar.SECOND,20);

请注意add方法,其中您编写了set