如何从待处理的意图中将活动包从活动传递到服务?

时间:2011-10-24 18:19:47

标签: android service

我正在尝试将变量(long)从活动传递给服务,我有以下内容 在活动中:

myIntent = new Intent(SetAlarm.this, Service.class);
pendingIntent = PendingIntent.getService(
     SetAlarm.this, 
     (int)reminderId, 
     myIntent, 
     0
);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
bundle = new Bundle();
bundle.putLong("reminderId", reminderId);
myIntent.putExtras(bundle);
alarmManager.set(AlarmManager.RTC_WAKEUP, timeInMillisec, pendingIntent);

在我的服务中:

Bundle bundle = intent.getBundleExtra("bundle");
CurrentreminderId = (long)bundle.getLong("reminderId");

不知怎的,我只是抓不住这个提醒的价值,任何想法?非常感谢任何帮助,谢谢大家。

2 个答案:

答案 0 :(得分:1)

以下是我一直使用并且似乎工作的东西。 试试看。您可能错误地收到了额外内容。

Intent intent = new Intent(this, SecondActivity.class);
Bundle b = new Bundle();

// see Bundle.putInt, etc.
// Bundle.putSerializable for full Objects (careful there)
b.putXXXXX("key", ITEM);  
intent.putExtras(b);
startActivity(intent);

// -- later, in Activity or service
Bundle b = this.getIntent().getExtras();
int i = b.getInt("key");

答案 1 :(得分:0)

而不是

Bundle bundle = intent.getBundleExtra("bundle");

你应该这样做:

Bundle bundle = intent.getExtras();