Android实现阅读进度记忆功能

 更新时间:2017年10月09日 15:17:30   转载 作者:JustingWang_1  
这篇文章主要介绍了Android实现阅读进度记忆功能,Android控件WebView实现保存阅读进度,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Android控件WebView实现保存阅读进度的具体代码,供大家参考,具体内容如下

用户提了一个要求,要求保存他的阅读进度,然后在他下次阅读的时候可以继续阅读,然后动手实现了一下,是这样的。

我用的控件是WebView

public class WebViewClientEmb extends WebViewClient {

    // 在WebView中而不是系统默认浏览器中显示页面
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
      view.loadUrl(url);
      System.out.println("Url---------->"+url);
      return true;
    }

    // 页面载入前调用
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
      super.onPageStarted(view, url, favicon);

    }

    // 页面载入完成后调用
    @Override
    public void onPageFinished(WebView webView, String url) {

      int position = CacheUtils.getInt(Laws_DetailActivity.this,link, 0);
      webView.scrollTo(0, position);//webview加载完成后直接定位到上次访问的位置
      mLoadingDialog.dismiss();
    }
  }

这中间,link是我的加载网址

@Override
  public void onPause() {
    super.onPause();

    if (webView != null) {
      int scrollY = webView.getScrollY();
      CacheUtils.putInt(this, link, scrollY);//保存访问的位置
    }
  }

最后贴出工具类

public class CacheUtils {
  private static final String NAME = "";
  private static SharedPreferences sp = null;


  // 存Strings
  public static void putString(Context context, String key, String value) {
    if (sp == null) {
      sp = context.getSharedPreferences(NAME,
          Context.MODE_PRIVATE);
    }
    sp.edit().putString(key, value).commit();
  }


  // 取String
  public static String getString(Context context, String key, String defValue) {
    if (sp == null) {
      sp = context.getSharedPreferences(NAME,
          Context.MODE_PRIVATE);
    }
    return sp.getString(key, defValue);
  }


  //存Int值
  public static void putInt(Context context, String key, int value) {
    if (sp == null) {
      sp = context.getSharedPreferences(NAME,
          Context.MODE_PRIVATE);
    }
    sp.edit().putInt(key, value).commit();
  }

  //取int值
  public static int getInt(Context context, String key, int defValue) {
    if (sp == null) {
      sp = context.getSharedPreferences(NAME,
          Context.MODE_PRIVATE);
    }
    return sp.getInt(key, defValue);
  }

}

三步就完成了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android中Activity跳转的创建步骤总结

    Android中Activity跳转的创建步骤总结

    这篇文章主要介绍了Android中Activity跳转的创建步骤总结,本文详细的讲解了从工程创建到跳转Activity的实现完整过程,需要的朋友可以参考下
    2014-10-10
  • Android签名机制介绍:生成keystore、签名、查看签名信息等方法

    Android签名机制介绍:生成keystore、签名、查看签名信息等方法

    这篇文章主要介绍了Android签名机制介绍:生成keystore、签名、查看签名信息等方法,本文讲解了升级App、权限检查、生成keystore、对apk进行签名、查看签名信息等内容,需要的朋友可以参考下
    2015-04-04
  • Android持久化保存cookie的方法

    Android持久化保存cookie的方法

    这篇文章主要介绍了Android持久化保存cookie的方法,在解析网页信息的时候,需要登录后才能访问,所以使用httpclient模拟登录,然后把cookie保存下来,以供下一次访问使用,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Android单个RecyclerView实现列表嵌套的效果

    Android单个RecyclerView实现列表嵌套的效果

    本篇文章主要介绍了Android单个RecyclerView实现列表嵌套的效果,具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • Android提高之MediaPlayer音视频播放

    Android提高之MediaPlayer音视频播放

    这篇文章主要介绍了Android提高之MediaPlayer音视频播放,很实用的功能,需要的朋友可以参考下
    2014-08-08
  • 分析Android中应用的启动流程

    分析Android中应用的启动流程

    不知道大家有没有好奇过点击Launcher图标时,到唤起一个应用页面,这个流程会是怎么样的?那这篇文章的目的就是尽可能梳理清楚流程,能够让大家对整个流程有一个相对清晰的认知。下面跟着小编一起学习学习。
    2016-08-08
  • 详解ListView中多种item的实现方式

    详解ListView中多种item的实现方式

    这篇文章主要给大家介绍了关于ListView中多种item的实现方式,文中通过示例代码介绍的很详细,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • 通过Android trace文件分析死锁ANR实例过程

    通过Android trace文件分析死锁ANR实例过程

    遇到ANR(Application Not Responding)是比较常见的问题,产生ANR的原因有很多,比如CPU使用过高、事件没有得到及时的响应、死锁等,下面将通过一次因为死锁导致的ANR问题,来说明如何通过trace文件分析ANR问题
    2013-06-06
  • Android开发中实现发送短信的小程序示例

    Android开发中实现发送短信的小程序示例

    这篇文章主要介绍了Android开发中实现发送短信的小程序示例,文中还附带了一个监听广播接收者的升级版短信发送例子,需要的朋友可以参考下
    2016-04-04
  • Android手机卫士之获取联系人信息显示与回显

    Android手机卫士之获取联系人信息显示与回显

    这篇文章主要介绍了Android手机卫士之获取联系人信息显示与回显的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10

最新评论