天天看点

intent传值更新问题

原文:http://phenix.blogbus.com/logs/220656659.html

在做android推送的功能时,发现一个基础问题.activity的启动模式是singletask.activity通过intent传递数据的时候,如果activity未启动,那么在这个刚启动的activity里通过getintent()会获取到这个intent的数据.如果要启动的activity是已经存在的,这时候通过getinten()方法获取到的intent是已启动的activity的原始intent.换句话说intent的数据没有更新.这样在已启动的activity里拿到的intent的数据是旧数据.如果要每次获取intent传来的新数据就需要在onnewintent(intent

intent)方法里调用setintent(intent)设置这个传来的最新的intent.

如果activity的启动模式是standard,那么每次都重新创建一个新的activity.这样intent也是最新的.就不用通过setintent来更新这个intent.

另外发现一个问题是pendingintent在启动activity的时候需要将构造里的第4个参数设置为pendingintent.flag_update_current.否则这个pendingintent如果存在也不会更新.那么传过去的数据仍然是旧数据.

继续阅读