我在使用 Bundle、Intent 和 Android 时遇到了很大的问题。
我发送了一条短信,因此我创建了一个包含文本和号码的捆绑包。现在,当我想更改我的号码和短信时,我的应用程序总是发送相同的第一条短信。
我几乎尝试了所有方法,但我不知道如何解决我的问题!
我尝试的是:使用 FLAG 更新我的 PendingIntent,但它没有帮助。
也许,有人可以帮助我吗?
这是我的代码:
Intent myIntent = new Intent(Parkschein.this, MyAlarmService.class);
Bundle bundle = new Bundle();
bundle.putCharSequence("extraSmsNumber", smsNumber);
bundle.putCharSequence("extraSmsText", smsText);
pendingIntent = PendingIntent.getActivity(Parkschein.this, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
myIntent.putExtras(bundle);
pendingIntent = PendingIntent.getService(Parkschein.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 2);
if(smsMinutes.equals(""))
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
else {
Long smsMinutesInLong = Long.parseLong(smsMinutes);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), smsMinutesInLong*60000, pendingIntent);
}
这是我的服务类,发送短信的地方:
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
pendingIntent = PendingIntent.getActivity(this, 0, intent,
PendingIntent.FLAG_ONE_SHOT + PendingIntent.FLAG_UPDATE_CURRENT);
Bundle bundle = new Bundle();
bundle = intent.getExtras();
smsNumberToSend = (String) bundle.getCharSequence("extraSmsNumber");
smsTextToSend = (String) bundle.getCharSequence("extraSmsText");
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(smsNumberToSend, null, smsTextToSend, null, null);
}
提前致谢!