当前位置:网站首页>视频直播源码,实现本地存储搜索历史记录
视频直播源码,实现本地存储搜索历史记录
2022-07-06 00:51:00 【云豹网络科技】
视频直播源码,实现本地存储搜索历史记录
1、build.gradle:
dependencies {
api 'com.tencent:mmkv-static:1.2.10'
}
2、Application初始化:
//rootDir是本地存储文件夹
String rootDir = MMKV.initialize(this);
MMKV kv = MMKV.mmkvWithID("search_history_id", MMKV.MULTI_PROCESS_MODE);
App.kv = kv;
//App是一个公共类
public class App {
public static MMKV kv;
}
3、 保存、获取历史记录Util类 把之前用的sp注释掉了 如果想用也可以参考
public class SearchHistoryUtil {
//保存搜索历史记录
public static void savaSearchWord(String keyword){
// String searchHistoryData = TeSharedPreferences.getInstance().getString("search_history");
String searchHistoryData = App.kv.decodeString("search_history");
if(searchHistoryData != null){
String[] tmpHistory = searchHistoryData.split(","); //逗号截取 保存在数组中
List<String> historyList = new ArrayList<String>(Arrays.asList(tmpHistory)); //将该数组转换成ArrayList
if (historyList.size() > 0) {
//1.移除之前重复添加的元素
for (int i = 0; i < historyList.size(); i++) {
if (keyword.equals(historyList.get(i))) {
historyList.remove(i);
break;
}
}
historyList.add(0, keyword); //将新输入的文字添加集合的第0位也就是最前面(2.倒序)
if (historyList.size() > 10) {
historyList.remove(historyList.size() - 1); //3.最多保存10条搜索记录 删除最早搜索的那一项
}
//逗号拼接
StringBuilder sb = new StringBuilder();
for (int i = 0; i < historyList.size(); i++) {
sb.append(historyList.get(i) + ",");
}
//保存到sp
// TeSharedPreferences.getInstance().putString("search_history",sb.toString());
App.kv.encode("search_history", sb.toString());
} else {
//之前未添加过
// TeSharedPreferences.getInstance().putString("search_history",keyword);
App.kv.encode("search_history", keyword);
}
}else{
App.kv.encode("search_history", keyword);
}
Log.e("search_history", "搜索历史记录:" + App.kv.decodeString("search_history"));
}
//获取搜索记录
public static List<String> getSearchHistory() {
// String longHistory = TeSharedPreferences.getInstance().getString("search_history");
String longHistory = App.kv.decodeString("search_history");
if(longHistory != null){
String[] tmpHistory = longHistory.split(","); //split后长度为1有一个空串对象
List<String> historyList = new ArrayList<String>(Arrays.asList(tmpHistory));
if (historyList.size() == 1 && historyList.get(0).equals("")) {
//如果没有搜索记录,split之后第0位是个空串的情况下
historyList.clear(); //清空集合,这个很关键
}
return historyList;
}
return new ArrayList<>();
}
4、sp代码
import android.content.Context;
import android.content.SharedPreferences;
import com.jumei.base.app.AppGlobalVar;
import java.util.HashMap;
import java.util.Map;
public class TeSharedPreferences {
private static final String APP_COMMON = "app_common";
public static final String APP_COOKIES = "app_cookies";
public static final String APP_INIT = "app_init";
private final SharedPreferences sharedPreferences;
private static final HashMap<String, TeSharedPreferences> preferencesManagerHashMap = new HashMap<>();
public static TeSharedPreferences getInstance() {
return getInstance(APP_COMMON);
}
public static TeSharedPreferences getInstance(String fileName) {
TeSharedPreferences instance = preferencesManagerHashMap.get(fileName);
if (instance == null) {
instance = new TeSharedPreferences(fileName);
preferencesManagerHashMap.put(fileName, instance);
}
return instance;
}
private TeSharedPreferences(String fileName) {
sharedPreferences = App.appContext.getSharedPreferences(fileName, Context.MODE_PRIVATE);
}
public void putString(String key, String value) {
sharedPreferences.edit().putString(key, value).apply();
}
public void putBoolean(String key, boolean value) {
sharedPreferences.edit().putBoolean(key, value).apply();
}
public void putInt(String key, int value) {
sharedPreferences.edit().putInt(key, value).apply();
}
public void putFloat(String key, float value) {
sharedPreferences.edit().putFloat(key, value).apply();
}
public String getString(String key) {
return sharedPreferences.getString(key, "");
}
public String getString(String key, String defValue) {
return sharedPreferences.getString(key, defValue);
}
public boolean getBoolean(String key, boolean defValue) {
return sharedPreferences.getBoolean(key, defValue);
}
public int getInt(String key, int defValue) {
return sharedPreferences.getInt(key, defValue);
}
public float getFloat(String key, float defValue) {
return sharedPreferences.getFloat(key, defValue);
}
public Map<String, ?> getAll() {
try {
return sharedPreferences.getAll();
} catch (Exception e) {
return null;
}
}
public void clear() {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.apply();
}
}
以上就是 视频直播源码,实现本地存储搜索历史记录,更多内容欢迎关注之后的文章
边栏推荐
- Novice entry depth learning | 3-6: optimizer optimizers
- Cf:d. insert a progression [about the insert in the array + the nature of absolute value + greedy top-down]
- 数据分析思维分析方法和业务知识——分析方法(三)
- [groovy] XML serialization (use markupbuilder to generate XML data | create sub tags under tag closures | use markupbuilderhelper to add XML comments)
- View class diagram in idea
- curlpost-php
- Power query data format conversion, Split Merge extraction, delete duplicates, delete errors, transpose and reverse, perspective and reverse perspective
- The value of applet containers
- Exciting, 2022 open atom global open source summit registration is hot
- 【线上小工具】开发过程中会用到的线上小工具合集
猜你喜欢
Beginner redis
State mode design procedure: Heroes in the game can rest, defend, attack normally and attack skills according to different physical strength values.
Mobilenet series (5): use pytorch to build mobilenetv3 and learn and train based on migration
Basic introduction and source code analysis of webrtc threads
Anconda download + add Tsinghua +tensorflow installation +no module named 'tensorflow' +kernelrestart: restart failed, kernel restart failed
程序员搞开源,读什么书最合适?
Keepalive component cache does not take effect
Cf:c. the third problem
Meta AI西雅图研究负责人Luke Zettlemoyer | 万亿参数后,大模型会持续增长吗?
Four dimensional matrix, flip (including mirror image), rotation, world coordinates and local coordinates
随机推荐
Model analysis of establishment time and holding time
Arduino六足机器人
Kotlin core programming - algebraic data types and pattern matching (3)
Classic CTF topic about FTP protocol
Meta AI西雅图研究负责人Luke Zettlemoyer | 万亿参数后,大模型会持续增长吗?
Anconda download + add Tsinghua +tensorflow installation +no module named 'tensorflow' +kernelrestart: restart failed, kernel restart failed
数据分析思维分析方法和业务知识——分析方法(三)
OpenCV经典100题
curlpost-php
cf:C. The Third Problem【关于排列这件事】
如何制作自己的機器人
I'm interested in watching Tiktok live beyond concert
Cf:d. insert a progression [about the insert in the array + the nature of absolute value + greedy top-down]
Zhuhai's waste gas treatment scheme was exposed
An understanding of & array names
NLP text processing: lemma [English] [put the deformation of various types of words into one form] [wet- > go; are- > be]
Basic introduction and source code analysis of webrtc threads
Study diary: February 13, 2022
[groovy] compile time metaprogramming (compile time method interception | find the method to be intercepted in the myasttransformation visit method)
XML Configuration File