Andorid开发之进程后台被kill后恢复与webView.loadUrl拼接参数注意事项
来源:互联网 发布:java面试题中 编辑:程序博客网 时间:2024/05/16 15:27
最近在做项目开发的时候,遇到两个比较难解的bug,最终发现是因为在写代码的时候情况考虑不全,特此记录:
1,Android应用在后台,如果系统内存不走,则应用进程会被kill掉,在这种情况下重新打开应用,由于不是用户手动kill或者退出,系统会为用户恢复状态,但是这时候只会调用MainActivity的onCreate方法,如果有些操作是在Launch页中处理的话,这种情况就不能将所有的处理逻辑执行完毕,可能导致出现很难复现的bug。
2,在使用Android的webView组件过程中,为了实现在浏览器的内部跳转会重载shouldOverrideUrlLoading()方法,然后通过loadUrl加载具体页面,但是如果本地在目标的url上有拼接参数的操作,需要避免对参数的重复的拼接,否则可能会出现类似重定向导致webView返回失效的bug。
具体的情形是:
1加载 http://www.baidu.com,这时在本地拼接一个参数,例如token;
2偶现的会调用shouldOverrideUrlLoading()方法,这时候如果还会在后面追加一个token的参数,这时的地址已经和目标的地址不同,所以在webView的回退记录里面会有两条记录;
3调用webView的goBack()方法,则会重复2的步骤,这样就会出现类似于重定向的bug,导致webview返回不了。
该问题的解决方法1,在本地拼接参数时添加判断,如果参数已经存在则在执行追加参数的操作,这样可以避免webview中出现多余的回退记录;2一些参数可以通过js的与页面通信,避免将参数追加到参数的后面,这样可以改变访问的url,从而避免出现上述问题。
- Andorid开发之进程后台被kill后恢复与webView.loadUrl拼接参数注意事项
- WebView.loadUrl
- [Android] WebView之loadDataWithBaseUrl()和loadUrl()
- loadUrl调用js函数 传它的参数的注意事项
- Android kill后台进程方法
- Android Webview的postUrl与loadUrl加载页面
- webView的loadUrl
- Android WebView LoadUrl过程
- WebView loadUrl,loadData,loadDataBase
- WebView.loadUrl使用误区
- kill -9 Oracle后台进程后可能要手工删除操作系统下的共享内存段
- 进程与终端--终端关闭后,后台进程也终止
- kill killall pkill 杀死php后台进程
- Linux进程控制命令之kill与killall
- Andorid process 之进程优先级
- andorid webview
- WebView中loadUrl 和 loadData
- WebView中loadUrl 和 loadData
- Zbar实现微信扫描界面可支持64位,可扫描二维码条形码
- 使用Angular.js前端开发框架的原因
- HDU2544:最短路【Dijkstra & SPFA】
- 【译】Android主题动态切换开源库Prism基本原理2-搭配ViewPager使用
- Android 开发 对话框Dialog dismiss和hide方法的区别
- Andorid开发之进程后台被kill后恢复与webView.loadUrl拼接参数注意事项
- Altium Designer版本发展
- Longest Increasing Subsequence
- VirtualBox 调整屏幕分辨率
- jQuery获取多种input值的方法
- AVplayer的使用详解 完整注释
- Android AutoCompleteTextView的简单使用
- 纯CSS3实现滑动开关效果
- 带GPG签名的Git tag