android开发6/21问题记录

来源:互联网 发布:jquery.ajaxform.js 编辑:程序博客网 时间:2024/06/03 05:51

昨天就决定开始日志记录,但是好像不知道写什么。嗯,应该主要是东西太琐碎了,不知道那些应该记录,那些是无用的。嗯没错。

那就都写一下吧,做一个备忘。

1.fragment在使用过程中,有replace和add,show两种。replace会频繁的调用new方法,不喜欢。没错。

2.工程中使用fragment加载一个webview,利用webview显示H5,H5内完成全部的链接和跳转,这个时候想要使用back进行监听,想达到当webview前一级有内容的时候,back触发返回上一级而不是退出。这个时候便需要在activity当中获取到fragment中控件的ID,网上找了好几种,但是都不行.后来想其实也有简单的方法,在fragment方法当中定义一个public方法,然后在onkeydown()时调用就可以。没错,但是还有一个问题就是会返回到登录页面,没有解决。

在Activity当中监听keydown

//按下按键后返回上一个页面,不退出@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event){    if (keyCode == KeyEvent.KEYCODE_BACK )    {        if (radiobuttonInfor.isChecked())        {            mine.goback();            return true;        }        if (radiobuttonVedio.isChecked())        {        }        if (radiobuttonMachine.isChecked() )        {            machine.goback();            return true;        }    }    return super.onKeyDown(keyCode, event);}
在对应的fragment当中进行返回判断

public void goback(){    if(webview_content_dev.canGoBack())        webview_content_dev.goBack();}

没错是这个样子,达到了基本的需求。是的。

3.apk实现两次点击的返回,第一次点击与第二次点击间隔大于2s则退出,否则进行相应的提示

//退出时的时间private long mExitTime;
其中System.currentTimeMillis()方法为Java获取当前系统时间,是一个ms级的数字,其实就是自1970年1月1日0时起的毫秒数,然后在onkeydown方法当中调用本方法便可以了

/*两次点击退出时间间隔的监听*/public void exit(){    if ((System.currentTimeMillis() - mExitTime) > 2000)    {        Toast.makeText(MainActivity.this, "再按一次退出本应用", Toast.LENGTH_SHORT).show();        mExitTime = System.currentTimeMillis();    } else    {        finish();        System.exit(0);    }}

4.要使用cookie实现自动登录,之前根本没有这个概念,补补知识先http://blog.csdn.net/jiashuai94/article/details/60140016

发现使用webview的时候应该是默认开户这个功能的,0代码便实现的登录状态的保持,但是需要切换用户便存在清除cookie的。这个功能还没有完成实现,因为web端出现了登录页面指向错误的情况,待测

public void clearCookies(){    CookieSyncManager.createInstance(this);    CookieSyncManager.getInstance().startSync();    CookieManager.getInstance().removeSessionCookie();}
有几个过期方法,但不影响使用,还用一个上面两次点击退出的方法总感觉有点问题。

看一下时间5:30的,嗯,归整一下,今天先这样吧。嗯没错。