我已经创建了一个 SMS Scheduler 应用程序,现在我正在尝试向它添加多个调度功能。我所做的是,一旦用户单击一个按钮(名为scheduleSMSButton
),代码就会收集数据,即电话号码、文本和发送短信的时间。在此之后,代码创建一个内部类的对象,将上述数据添加到调用构造函数,然后启动该schedule
方法。
这是 scheduleSMSButton 的代码:
scheduleSMSButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//getting the time.
long difference = targetCal.getTimeInMillis();
//getting the text.
String smsData = smsText.getText().toString();
//getting the phone number.
String smsAddressee = addressee.getText().toString();
//new object of inner class and start schedule method on that object.
new SchedulingInProgress(difference, smsData, smsAddressee).schedule();
}});
这是我创建的内部类:
private class SchedulingInProgress{
long timeToTrigger;
String data;
String addressee;
public SchedulingInProgress(long difference, String smsData,
String smsAddressee) {
timeToTrigger = difference;
data = smsData;
addressee = smsAddressee;
// TODO Auto-generated constructor stub
}
private void schedule(){
Intent fireSendSMSClass = new Intent(getApplicationContext(),
SendSMS.class);
fireSendSMSClass.putExtra("smsData", data);
fireSendSMSClass.putExtra("smsAddressee", addressee);
PendingIntent pdi = PendingIntent.getActivity(getApplicationContext(),
0, fireSendSMSClass, PendingIntent.FLAG_ONE_SHOT);
AlarmManager newManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
newManager.set(AlarmManager.RTC_WAKEUP, timeToTrigger, pdi);
}
}
SendSMSClass 什么都不做,只是发送消息。
我面临的问题是,如果我在时间安排短信,例如在19:00 时使用文本abc,在时间19:02 时使用文本xyz另一个警报;然后在 19:00 时,发送带有文本 xyz 的短信。而其他短信根本不发送。
我应该怎么做才能修复这个错误?
谢谢。