我遇到了Bundle,Intent和Android的大问题。
我发送短信,因此我创建了一个包含文本和数字的Bundle。 现在,当我想更改我的号码和文本时,我的应用程序始终会发送相同的第一条短信。
我几乎尝试过所有事情,但我不知道如何解决我的问题!
我试过的是: 使用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);
}
提前致谢!
答案 0 :(得分:0)
Android缓存PendingIntent
之类的对象供以后使用。你确定你已经添加了标志来纠正PE吗?你可能需要这样做
pendingIntent = PendingIntent.getService(Parkschein.this, 0, myIntent,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);