我有一个在多模式下使用的活动,所以我必须这样做:
Intent i = new Intent(MainListActivity.this,MainActivity.class);
extras.putInt("id", c.getId());
extras.putInt("mode", AREA_MODE);
i.putExtra("extras", extras);
startActivity(i);在onCreate中
Intent i = this.getIntent();
extras = i.getBundleExtra("extras");
if(extras!=null){
id = extras.getInt("id", -1);
mode = extras.getInt("mode", COUNTRY_MODE);
}但是意图附加总是为空的。我是不是遗漏了什么?有没有办法做到这一点?
编辑:由于某些原因,getIntent()方法返回前一个Intent,在我的例子中,它没有额外的(主意图)。我在努力找出原因。
发布于 2015-04-10 15:29:43
啊哈!我刚刚调试了这个问题。事实证明,这是由于一个微妙的细节。
人们常犯的一个错误是创建多个PendingIntent对象,这些对象的意图只是在它们的“额外”内容上有所不同,期望每次都能得到不同的PendingIntent。这种情况不会发生。
解决方案1:创建一个不同的PendingIntent。它必须有不同的操作、动作、数据、类别、组件或标志--或者请求代码整数。
解决方法2:使用FLAG_CANCEL_CURRENT或FLAG_UPDATE_CURRENT取消或修改任何现有的PendingIntent。
这两个修复产生的结果略有不同。无论哪种方式,你的新附加软件都应该可以通过。
https://stackoverflow.com/questions/4898271
复制相似问题