视频直播源码,实现本地存储搜索历史记录

视频直播源码,实现本地存储搜索历史记录

1、build.gradle:

 

1
<br>dependencies {<br>    api 'com.tencent:mmkv-static:1.2.10'<br>}

2、Application初始化:

 

1
<br>//rootDir是本地存储文件夹<br>String rootDir = MMKV.initialize(this);<br>MMKV kv = MMKV.mmkvWithID("search_history_id", MMKV.MULTI_PROCESS_MODE);<br>App.kv = kv;<br> <br> <br>//App是一个公共类<br>public class App {<br>    public static MMKV kv;<br>}

 

3、 保存、获取历史记录Util类  把之前用的sp注释掉了  如果想用也可以参考

 

1
<br>public class SearchHistoryUtil {<br>    //保存搜索历史记录<br>    public static void savaSearchWord(String keyword){<br>//        String searchHistoryData = TeSharedPreferences.getInstance().getString("search_history");<br>        String searchHistoryData = App.kv.decodeString("search_history");<br>        if(searchHistoryData != null){<br>            String[] tmpHistory = searchHistoryData.split(","); //逗号截取 保存在数组中<br>            List<String> historyList = new ArrayList<String>(Arrays.asList(tmpHistory)); //将该数组转换成ArrayList<br>            if (historyList.size() > 0) {<br>                //1.移除之前重复添加的元素<br>                for (int i = 0; i < historyList.size(); i++) {<br>                    if (keyword.equals(historyList.get(i))) {<br>                        historyList.remove(i);<br>                        break;<br>                    }<br>                }<br>                historyList.add(0, keyword); //将新输入的文字添加集合的第0位也就是最前面(2.倒序)<br>                if (historyList.size() > 10) {<br>                    historyList.remove(historyList.size() - 1); //3.最多保存10条搜索记录 删除最早搜索的那一项<br>                }<br>                //逗号拼接<br>                StringBuilder sb = new StringBuilder();<br>                for (int i = 0; i < historyList.size(); i++) {<br>                    sb.append(historyList.get(i) + ",");<br>                }<br>                //保存到sp<br>//            TeSharedPreferences.getInstance().putString("search_history",sb.toString());<br>                App.kv.encode("search_history", sb.toString());<br>            } else {<br>                //之前未添加过<br>//            TeSharedPreferences.getInstance().putString("search_history",keyword);<br>                App.kv.encode("search_history", keyword);<br>            }<br>        }else{<br>            App.kv.encode("search_history", keyword);<br>        }<br> <br>        Log.e("search_history", "搜索历史记录:" + App.kv.decodeString("search_history"));<br>    }<br> <br>    //获取搜索记录<br>    public static List<String> getSearchHistory() {<br>//        String longHistory = TeSharedPreferences.getInstance().getString("search_history");<br>        String longHistory = App.kv.decodeString("search_history");<br>        if(longHistory != null){<br>            String[] tmpHistory = longHistory.split(","); //split后长度为1有一个空串对象<br>            List<String> historyList = new ArrayList<String>(Arrays.asList(tmpHistory));<br>            if (historyList.size() == 1 && historyList.get(0).equals("")) { //如果没有搜索记录,split之后第0位是个空串的情况下<br>                historyList.clear();  //清空集合,这个很关键<br>            }<br>            return historyList;<br>        }<br>        return new ArrayList<>();<br>    }

 

4、sp代码

 

1
<br>import android.content.Context;<br>import android.content.SharedPreferences;<br> <br>import com.jumei.base.app.AppGlobalVar;<br> <br>import java.util.HashMap;<br>import java.util.Map;<br> <br>public class TeSharedPreferences {<br> <br>    private static final String APP_COMMON = "app_common";<br>    public static final String APP_COOKIES = "app_cookies";<br>    public static final String APP_INIT = "app_init";<br> <br>    private final SharedPreferences sharedPreferences;<br> <br>    private static final HashMap<String, TeSharedPreferences> preferencesManagerHashMap = new HashMap<>();<br> <br>    public static TeSharedPreferences getInstance() {<br>        return getInstance(APP_COMMON);<br>    }<br> <br>    public static TeSharedPreferences getInstance(String fileName) {<br>        TeSharedPreferences instance = preferencesManagerHashMap.get(fileName);<br>        if (instance == null) {<br>            instance = new TeSharedPreferences(fileName);<br>            preferencesManagerHashMap.put(fileName, instance);<br>        }<br> <br>        return instance;<br>    }<br> <br>    private TeSharedPreferences(String fileName) {<br>        sharedPreferences = App.appContext.getSharedPreferences(fileName, Context.MODE_PRIVATE);<br>    }<br> <br>    public void putString(String key, String value) {<br>        sharedPreferences.edit().putString(key, value).apply();<br>    }<br> <br>    public void putBoolean(String key, boolean value) {<br>        sharedPreferences.edit().putBoolean(key, value).apply();<br>    }<br> <br>    public void putInt(String key, int value) {<br>        sharedPreferences.edit().putInt(key, value).apply();<br>    }<br> <br>    public void putFloat(String key, float value) {<br>        sharedPreferences.edit().putFloat(key, value).apply();<br>    }<br> <br>    public String getString(String key) {<br>        return sharedPreferences.getString(key, "");<br>    }<br> <br>    public String getString(String key, String defValue) {<br>        return sharedPreferences.getString(key, defValue);<br>    }<br> <br>    public boolean getBoolean(String key, boolean defValue) {<br>        return sharedPreferences.getBoolean(key, defValue);<br>    }<br> <br>    public int getInt(String key, int defValue) {<br>        return sharedPreferences.getInt(key, defValue);<br>    }<br> <br>    public float getFloat(String key, float defValue) {<br>        return sharedPreferences.getFloat(key, defValue);<br>    }<br> <br>    public Map<String, ?> getAll() {<br>        try {<br>            return sharedPreferences.getAll();<br>        } catch (Exception e) {<br>            return null;<br>        }<br>    }<br> <br>    public void clear() {<br>        SharedPreferences.Editor editor = sharedPreferences.edit();<br>        editor.clear();<br>        editor.apply();<br>    }<br>}

 

以上就是 视频直播源码,实现本地存储搜索历史记录,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(151)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示