Android 6.0 webview 清除用户数据

小冰说 发布于 2017/03/02 15:48
阅读 340
收藏 0

问题:用户A账号登录成功,然后退出,再用用户B账号登录成功,发现还是显示的是用户A账号信息。

原因:Android webvie控件用户数据以及缓存所导致。

解决方案:

1,手机设置=》应用管理=》找到你的应用APP=>清除应用数据。(备注:清除缓存不一定能解决该问题)

2,代码处理逻辑,在用户退出登录时,webview清除用户数据。(请问代码如何编写?)
 

加载中
0
小冰说
小冰说

用这个方法, 但是没有经过检验:大家可以尝试试试效果。(因为这种情况,不好测试)

//完美解决客户端webview持有的页面缓存,不会立即释放的问题
 mWebView.loadUrl("about:blank");
 mWebView.loadUrl("http://www.xx.com/Account/LogOut");//你的登录地址
0
小冰说
小冰说

关于清空应用数据解决方案:

/**
 * 清除应用缓存的用户数据,同时停止所有服务和Alarm定时task
 * String cmd = "pm clear " + packageName;
 * String cmd = "pm clear " + packageName + " HERE";
 * Runtime.getRuntime().exec(cmd)
 * @param packageName
 * @return
 */
public static Process clearAppUserData(String packageName) {
    Process p = execRuntimeProcess("pm clear " + packageName);
    if (p == null) {
        Log.e(TAG,"Clear app data packageName:" + packageName
                + ", FAILED !");
    } else {
        Log.e(TAG,"Clear app data packageName:" + packageName
                + ", SUCCESS !");
    }
    return p;
}
public static Process execRuntimeProcess(String commond) {
    Process p = null;
    try {
        p = Runtime.getRuntime().exec(commond);
    } catch (IOException e) {
        Log.e(TAG,"exec Runtime commond:" + commond + ", IOException" + e);
        e.printStackTrace();
    }
    Log.e(TAG,"exec Runtime commond:" + commond + ", Process:" + p);
    return p;
}

清除之后,出现问题:当前应用关闭。经过检测,应用数据确实被清空了!

返回顶部
顶部