2018-05-28

2018-05-28  本文已影响0人  霁逸lei

Activity 启动模式为singleTop、singleTask时当Activity界面已在栈顶再次开启界面不会调用onCreate(),而是调用onNewIntent onResume
protected void onNewIntent(Intent intent)
intent 与getIntent()的区别
getIntent()获取的是老的intent
例如:ActivityB可以通过点击正常开启,也能通过Receiver触发开启,在Receiver中设置标记
正常开启ActivityB:
getIntent().getBooleanExtra("ALARM",false); //值为默认值false

此时触发广播,标记值为true
getIntent().getBooleanExtra("ALARM",false); //值依然为false,即此时获取的是普通开启的intent而不是广播触发的新的intent
intent.getBooleanExtra("ALARM",false); //值为true

当使用onNewIntent(Intent intent) 并且后续需要用到getIntent需要在该方法内调用setIntent(intent)

上一篇下一篇

猜你喜欢

热点阅读