关于Android Fragment的注入,请看这两个链接了解下:
- http://www.cnblogs.com/Lefter/p/3451853.html
- http://securityintelligence.com/new-vulnerability-android-framework-fragment-injection
如果你也想在系统的设置Settings页面注入你想要展示的Fragment,那么你就有注意一些问题:
- 一些比较重要的点,如系统版本4.4及以上无法使用等等,请看上面的两个链接可以了解到;
这里说的是另一个注意点:
你调用startActivity的Intent,注意Flag要至少保证填上这两个Flag:- Intent.FLAG_ACTIVITY_NEW_TASK
- Intent.FLAG_ACTIVITY_CLEAR_TASK
否则,可能会出现这样一个现象:startActivity之后打开的界面不是你想要的界面,而是系统的设置界面。出现这个问题的原因是:
- 系统Settings的源码里只有在onCreate函数中去打开你注入的Fragment;
- 系统Settings这个Activity已经被配置成android:launchMode=”singleTask”;
假设你Settings这个程序还没关闭的情况下,你startActivity,注入你的Fragment,但是此时因为Settings程序还没死掉,所以是不会调用onCreate方法,而仅仅调用onNewIntent,所以此时是不会去注入你的Fragment,而显示系统的设置界面。
若转载,请注明来源http://blog.csdn.net/scnuxisan225/article/details/45247277,谢谢~