首页 > 代码库 > 使用SharedPreferences即时存储之后,不能即时获取到数据
使用SharedPreferences即时存储之后,不能即时获取到数据
在这里简单介绍一下我所遇到的情况,因为情况很特殊,所以我就来记录一下自己在这个方面的经历!
事由:在我所做的app中有一个视频的播放功能,由于之前做优化的时候,我听说对于视频这样的比较耗费资源的应该给他独自开一个进程。这样会使得app更加流畅。然后,我就按照这样去做了,给视频播放独自开辟了一个进程!然后也就是说我的app中存在了两个进程,一个是默认的进程,一个是我所指定开辟的进程。然后,在视频播放页面的下方有用户对该视频进行评论的功能。而别人也可以对已对该视频进行评论的人进行回复、赞等操作。但是前提是对已评论该视频的用户进行回复、赞的操作必须要用户已登录该app,成为当前用户(我对是否已经登陆的用户使用sharedPreference.getToken()是否为空进行判断,因为当用户登陆成功之后,我会使用sharedPreference.saveToken()来存储用户的登陆记录)。所以,按照这个思路。我先进入到了视频播放页面(此时我还未登陆),对已经对该视频评价的用户点赞。由于我是未登录用户进行了操作,通过sharePreference.getToken()进行判断 为 空 ,然后我被强制进入到登陆页面,然后登陆成功后。再次操作点赞,结果意外发生了!我不能获得存储已登陆成功的存储记录。
后来,我经过多种的尝试。验证是不是我的参数或者是什么调错了方法。搞了一整天才摸索到原来是两个独立进程的问题!我尝试验证期间,如果我在默认的进程中进行了浏览过程中登陆然后进入视频的播放页面。在播放页面依然可以通过sharedPreference.getToken()得到登陆成功的记录。但是我如果是在第二个独立进程中,播放页面进行登陆存储成功的登陆记录。那么,即使存储成功之后也不能即时获取存储记录数据,且获取到的数据为空。
我的处理方法是,统一一个进程app。
使用SharedPreferences即时存储之后,不能即时获取到数据