记一次获取当前用户名错误的bug
2015-12-23 10:12
211 查看
在Android应用中很多时候都会要获取当前登录用户名,一般的逻辑是这样的,在登录Activity中,登录成功的时候记录当前用户的用户名,通过sharePrefrence保存;在BaseActivity中获取当前用户名,也是通过sharePrefrence获取。
这个本没什么问题,错就错在我在登录成功后Activity oncreate里把当前用户记录了下来,代码类似
这样做可以避免每次都从xml里取数据,本来是个好方法,但是我登录后的Activity(IndexActivity)的启动模式是singleTask,这就有问题了。因为第一次登录后,IndexActivity已经创建了,然后我注销的时候再跳转到Login,再登录的时候就不会再走IndexActivity的oncreate了,所以mCurrentUserAccount也就还是之前的登录用户。
怎么解决呢?很简单,在IndexActivity的onNewIntent()方法里再去重新给mCurrentUserAccount赋值就可以了。因为具体的可以参考Activity的不同的启动模式的特点。
这个本没什么问题,错就错在我在登录成功后Activity oncreate里把当前用户记录了下来,代码类似
mCurrentUserAccount = getCurrentAccount();
这样做可以避免每次都从xml里取数据,本来是个好方法,但是我登录后的Activity(IndexActivity)的启动模式是singleTask,这就有问题了。因为第一次登录后,IndexActivity已经创建了,然后我注销的时候再跳转到Login,再登录的时候就不会再走IndexActivity的oncreate了,所以mCurrentUserAccount也就还是之前的登录用户。
怎么解决呢?很简单,在IndexActivity的onNewIntent()方法里再去重新给mCurrentUserAccount赋值就可以了。因为具体的可以参考Activity的不同的启动模式的特点。
相关文章推荐
- GDB使用方法
- 代码优化之UI布局
- IIS部署SSL证书后提示不可信的解决方案
- python获取window下网卡流量的函数
- Android实现截屏并保存操作功能
- 爱之初体验
- java操作mysql中文乱码解决
- matlab 实践程序8——将指定的图像移动到另一个文件夹
- Spring-task-timer定时器
- linux 下shutdown命令关闭多个tomcat问题
- Barbican 简介
- zookeeper 安装 windows环境
- 引用 电脑快捷键,我一定要运用起来!
- jquery获取当前点击对象
- 支撑树的插点问题
- iOS8 定位问题
- Windows下C++多线程同步与互斥简单运用
- POJ1661 Help Jimmy(dp)
- 人生不会亏待你,越努力,越幸运
- 面向对象的思想