你的位置:首页 > 软件开发 > 操作系统 > Activity以singleTask模式启动,intent传值的解决办法

Activity以singleTask模式启动,intent传值的解决办法

发布时间:2015-11-04 11:00:30
转载请注明出处,谢谢http://blog.csdn.net/harryweasley/article/details/46557827因为项目中,有一个消息推送的功能,每次推送一个消息,就会开启FunctionActivity,那么为了避免重复开启它,在退后的时候,多次出现该A ...

转载请注明出处,谢谢http://blog.csdn.net/harryweasley/article/details/46557827

因为项目中,有一个消息推送的功能,每次推送一个消息,就会开启FunctionActivity,那么为了避免重复开启它,在退后的时候,多次出现该Activity,就将该Activity的启动模式变为singleTask。

这样在之后的多次启动该Activity,便会调用onNewIntent(Intent intent)方法。

activity通过intent传递数据的时候,如果activity未启动,那么 在这个刚启动的activity里通过getIntent()会获取到这个intent的数据.如果要启动的activity是已经存在的,这时候通过 getInten()方法获取到的intent是已启动的activity的原始intent.换句话说intent的数据没有更新.这样在已启动的 activity里拿到的intent的数据是旧数据.如果要每次获取intent传来的新数据就需要在onNewIntent(Intent intent)方法里调用setIntent(intent)设置这个传来的最新的intent.如下所示:

	@Override	protected void onNewIntent(Intent intent) {		super.onNewIntent(intent);		Log.e("tag", "onNewINtent执行了");		setIntent(intent);		String ringName = intent.getStringExtra("ringName");		Log.e("tag", ringName+"传过来的值");		if (ringName != null) {			pager.setCurrentItem(1);		}	}


原标题:Activity以singleTask模式启动,intent传值的解决办法

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录