博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android Widget 中读取SharedPreference 坑
阅读量:2191 次
发布时间:2019-05-02

本文共 722 字,大约阅读时间需要 2 分钟。

问题1:

Widget  和主进程SharedPreference 中数据不同步

原因:

主进程应用写入后,第一次 Widget是一次性读进了内存,在应用程序杀掉之前,都是从内存中拿的,所以实际上是 Widget将其缓存下来了。应用能够正确读取到数据,第二次再从 主进程应用修改数据的时候 为啥 Widget还是拿到旧的数据? (没有退出应用的前提下)

答案是:这种跨进程的共享,Widget是一次性读进了内存,在应用程序杀掉之前,都是从内存中拿的,所以实际上是Widget将其缓存下来了。

解决方法:

Widget中获取sharepreference时, 使用sp=context.getSharedPreferences("test_sp", MODE_MULTI_PROCESS);  就可以得到最新的数据

问题2:

读跨进程sharepre 

Context context=null;          try {              //创建上下文,指定宿主应用的包名以及 忽略系统的安全过滤,这点切勿忽视!              context=createPackageContext("com.sharepreference.write", Context.CONTEXT_IGNORE_SECURITY);          } catch (NameNotFoundException e) {              e.printStackTrace();          }   sp=context.getSharedPreferences("test_sp", MODE_WORLD_READABLE);

转载地址:http://dxdub.baihongyu.com/

你可能感兴趣的文章
【LEETCODE】119-Pascal's Triangle II
查看>>
【LEETCODE】88-Merge Sorted Array
查看>>
【LEETCODE】19-Remove Nth Node From End of List
查看>>
【LEETCODE】125-Valid Palindrome
查看>>
【LEETCODE】28-Implement strStr()
查看>>
【LEETCODE】6-ZigZag Conversion
查看>>
【LEETCODE】8-String to Integer (atoi)
查看>>
【LEETCODE】14-Longest Common Prefix
查看>>
【LEETCODE】38-Count and Say
查看>>
【LEETCODE】278-First Bad Version
查看>>
【LEETCODE】303-Range Sum Query - Immutable
查看>>
【LEETCODE】21-Merge Two Sorted Lists
查看>>
【LEETCODE】231-Power of Two
查看>>
【LEETCODE】172-Factorial Trailing Zeroes
查看>>
【LEETCODE】112-Path Sum
查看>>
【LEETCODE】9-Palindrome Number
查看>>
【极客学院】-python学习笔记-Python快速入门(面向对象-引入外部文件-Web2Py创建网站)
查看>>
【LEETCODE】190-Reverse Bits
查看>>
【LEETCODE】67-Add Binary
查看>>
【LEETCODE】7-Reverse Integer
查看>>