在onResume()中调用getIntent()得不到Extra的问题,求高手解答!!!

Eels_yang_ 2011-08-08 08:59:31
我有一个AlarmManager定期发送PendingIntent,如下:
Intent alarmIntent=new Intent(context,Notes.class);
alarmIntent.putExtra("MemoID", memoid);
PendingIntent pIntent=PendingIntent.getActivity(context, 0, alarmIntent,PendingIntent.FLAG_UPDATE_CURRENT);
这个PendingIntent会打开一个Notes.我在Notes中的onStart()方法中调用
getIntent().getIntExtra("MemoID", -1);能够得到想要的值。但是这种方法AlarmManager每次触发时都会生成一个Notes,但我不想让生成多个Notes对象。因此,我在AndroidManifest.xml中设置了
<activity android:name=".Notes"
android:launchMode="singleTask"/>
看,launchMode设置成了singleTask模式,这样AlarmManager每次触发时,就不会调用onStart()方法了,而是调用onResume()方法,为了得到MemoID的值,我在onResume()中使用getIntent().getIntExtra("MemoID", -1);却得不到想要的值了,这是为什么啊?
...全文
1227 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
valakas 2014-03-13
  • 打赏
  • 举报
回复
楼上好人啊!!!赞个!
nosxcy 2012-06-20
  • 打赏
  • 举报
回复
这么老的帖子都被搜到了,不知道LZ解决了没,我遇到和这一样的问题,解决方法是添加这个函数就ok了,


protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);// must store the new intent unless getIntent() will
// return the old one
}
希望搜到这个帖子的后来者能获得这种解决方法
Eels_yang_ 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 redoffice 的回复:]

可以尝试下2楼。
不行的话尝试用下Bundle。
[/Quote]
Bundle试了也不行啊
Eels_yang_ 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ch_984326013 的回复:]

你把getIntent.getIntExtra("MemoID",-1)换成一下代码试试:

Intent intent=new Intent();
intent.getIntExtra("MemoID",-1);

理论上以上两个方法本该相同的。但是在有时候,用getIntent会出错。取不到想要的值。以前有过这种经历。所以你可以去试试!
[/Quote]
我试了一下,还是没有得到。。。
redoffice 2011-08-09
  • 打赏
  • 举报
回复
可以尝试下2楼。
不行的话尝试用下Bundle。
ch_984326013 2011-08-08
  • 打赏
  • 举报
回复
你把getIntent.getIntExtra("MemoID",-1)换成一下代码试试:

Intent intent=new Intent();
intent.getIntExtra("MemoID",-1);

理论上以上两个方法本该相同的。但是在有时候,用getIntent会出错。取不到想要的值。以前有过这种经历。所以你可以去试试!

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧