我正在处理我的第一个应用程序,我的目标是发送一系列预定义的短信,从用户设置的日期和时间开始,然后相对于第一个设置的时间即发送第一个短信,在+ 3min发送第二个短信,在+ 7min发送第三个短信等)。我设法通过使用不同的待定内容请求代码一次设置所有的警报,并为每条消息设置多个广播接收器,但这看起来效率不高。是否有可能重复使用相同的请求代码(以取消一系列可能的事件),并在收到每个广播后从相同的接收器设置一个闹钟?下面的代码,欢迎任何建议。以设定的时间间隔发送一系列预定义的短信
主要活动
Intent intent = new Intent(MainActivity.this,
Receiver1.class);
intent.putExtra(EXTRA_MESSAGE1, message1);
intent.putExtra(EXTRA_NUMBER, number);
Intent intent2 = new Intent(MainActivity.this,
Receiver2.class);
intent2.putExtra(EXTRA_MESSAGE2, message2);
intent2.putExtra(EXTRA_NUMBER, number);
PendingIntent sender = PendingIntent.getBroadcast(
MainActivity.this, 1, intent, 0);
PendingIntent sender2 = PendingIntent.getBroadcast(
MainActivity.this, 2, intent2, 0);
// Set alarm for this time
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, mYear);
cal.set(Calendar.MONTH, mMonth);
cal.set(Calendar.DAY_OF_MONTH, mDay);
cal.set(Calendar.HOUR_OF_DAY, mHour);
cal.set(Calendar.MINUTE, mMinute);
// Schedule alarm
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);
AlarmManager am2 = (AlarmManager) getSystemService(ALARM_SERVICE);
am2.set(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis() + 30 * 1000, sender2);
接收机1个
public class Receiver1 extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE1);
String number = intent.getStringExtra(MainActivity.EXTRA_NUMBER);
sendSMS(number, message);
};
// ---sends an SMS message to another device---
private void sendSMS(String phoneNumber, String message) {
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);
};
}
接收机2
public class Receiver2 extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE2);
String number = intent.getStringExtra(MainActivity.EXTRA_NUMBER);
sendSMS(number, message);
};
// ---sends an SMS message to another device---
private void sendSMS(String phoneNumber, String message) {
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);
};
}
别忘了帮兄弟出来有标记和/或upvote。 – 2013-02-28 14:36:08