出于某种原因,当我收到意图时,我添加到我意图中的捆绑额外数据不会持续存在。我已经调试了很长一段时间了,但我发现我的代码没有任何问题。也许有人可以提供帮助。
意图创作:
// Intent created within an IntentService for an AppWidgetProvider
final Intent textViewIntent = new Intent(this, LocWidgetProvider.class);
textViewIntent.setAction(ACTION_CHANGE_LOCALE);
textViewIntent.putExtra("SomeExtra", "SomeValue");
Log.d("ExtraTest", String.format("Extra data: %s",
textViewIntent.getStringExtra("SomeExtra")));
final PendingIntent textViewPendingIntent = PendingIntent.getBroadcast(this, 0,
textViewIntent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.SomeButton, textViewPendingIntent);
按“SomeButton”后接收inent时:
protected void onHandleIntent(Intent intent) {
if(intent.getAction().equals(ACTION_CHANGE_LOCALE))
{
if(!intent.hasExtra("SomeExtra"))
{
Log.d("ExtraTest", "Extra data was null :(");
}
else {
String newLocale = (String)intent.getExtras().get("SomeExtra");
LocaleManager.ChangePhoneLocale(new Locale(newLocale));
}
}
我一直在打:
“额外数据:SomeValue”(Intent似乎在创建时有数据)
“额外数据为空:(”。(收到时Intent不再具有ExtraData
创建意图时我做错了吗?
答案 0 :(得分:2)
我也有这个问题并通过获得父意图来解决它 在我的情况下,我设置两个vales,一个转发到新的Activity,一个不是。
致电活动;
intent.putExtra(Constants.EXTRA_ID, note.getFormatedDate());
intent.putExtra(Constants.EXTRA_NAME, name);
接收活动
String id = intent.getStringExtra(Constants.EXTRA_ID);
if( id == null ) {
Activity p = getParent();
if( p != null ) {
Intent i2 = p.getIntent();
if( i2 != null ) {
id = i2.getStringExtra(Constants.EXTRA_ID);
}
}
}
答案 1 :(得分:0)
尝试getParent().getIntent().getExtras().getWHATYOUWANT(key);
,因为getParent()
获取了调用意图的活动,所以附加内容也随之发送。
或String newLocale = intent.getExtras().getString("SomeExtra");
没有投出