TabHost使用未解之疑惑
2016-07-18 11:38
330 查看
TabHost使用必不可少的要用到 TabActivity,虽然本人自始至终不喜欢这个类,但是接触到好多项目都在使用此类,表示相当无语。想对项目进行小小修改是遇到了好几个坑爹的问题。
加入MainActivity 中用TabHost内嵌了两个Activity,HomeActivity,MineActivity.其中MineActivity的逻辑如下:
1:如果已登录则显示个人数据,如果没有登录则点击进入登录页(LoginActivity). 然后回退刷新
2:点击设置进入SettingActivity,此Activity可以进行账号注销。
回退刷新用到了StartActivityForResult() ,遇到了一个非常不稳定的坑。代码如下
如果没有点击过注销返回,MainActivity的onActivityResult()是可以正常执行的,只要点击了注销,onActiivty的执行时机就乱了。注销后再点击进入登录页面,还没点击登录处理,onActivityResult()就立马执行了,完全找不到原因。
代码如下:
MineActivity中
LoginActivity中登录成功后回退
MainActivity当中,本以为会执行:
结果执行的真实情况相当气人。
几乎每次点击进入LoginActivity,MainActivity
那位朋友知道,请给予留言帮助谢谢。
加入MainActivity 中用TabHost内嵌了两个Activity,HomeActivity,MineActivity.其中MineActivity的逻辑如下:
1:如果已登录则显示个人数据,如果没有登录则点击进入登录页(LoginActivity). 然后回退刷新
2:点击设置进入SettingActivity,此Activity可以进行账号注销。
回退刷新用到了StartActivityForResult() ,遇到了一个非常不稳定的坑。代码如下
如果没有点击过注销返回,MainActivity的onActivityResult()是可以正常执行的,只要点击了注销,onActiivty的执行时机就乱了。注销后再点击进入登录页面,还没点击登录处理,onActivityResult()就立马执行了,完全找不到原因。
代码如下:
MineActivity中
Intent intent = new Intent(context, LoginActivity.class); getParent().startActivityForResult(intent, RequestCode.USER_INFO_REFRESH);
Intent intent = new Intent(context, SettingActivity.class); getParent().startActivityForResult(intent, Constant.MY_SETTING);
LoginActivity中登录成功后回退
setResult(RESULT_OK); finish();
MainActivity当中,本以为会执行:
@Override protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { super.onActivityResult(requestCode, resultCode, data); LogUtil.outLog(requestCode); switch (requestCode){ case RequestCode.USER_INFO_REFRESH: if(resultCode == RESULT_OK){ ((OnTabActivityResultListener)myActivity).onTabResume(); } break; default: break; } }
结果执行的真实情况相当气人。
几乎每次点击进入LoginActivity,MainActivity
onActivityResult()立马就会执行,根本没有像预料的那样登录成功后回来执行此方法然后刷新。
但是偶尔是可以登录玩回退进行正常刷新。结果相当费解。
例如:常规那些可能性原因都是试过了,比如launchMode设置、请求码设置必须大于0,统统不起作用。
那位朋友知道,请给予留言帮助谢谢。
相关文章推荐
- 最新完美解决nginx支持thinkphp的PATH_INFO,URL格式的问题
- Windows10访问共享总是提示输入网络凭证不正确
- CSS定位布局
- LeetCode之二叉树按层从下往上遍历
- 史上最全IO框架二(字节流)
- ab Test工具
- c、rust、golang、swift性能比较
- Python——1变量和数据类型(内含其他知识点链接)
- vs中 .h和.cpp之间的切换
- 字符个数统计
- Linux 命令行快捷键总结
- CSS布局模型
- gzip: stdin has more than one entry--rest ignored
- hibernate与mysql字段类型对应关系
- 人月神话读书笔记(9)----削足适履
- Listview冲突解决
- nyoj 914 yougth最大值 二分 贪心
- 数据库类II
- EasyUI DataGrid 使用(分页,url数据获取,data转json)
- Markdown语法备忘