視訊直播原始碼,實現本地儲存搜尋歷史記錄
視訊直播原始碼,實現本地儲存搜尋歷史記錄
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(); } }
以上就是 視訊直播原始碼,實現本地儲存搜尋歷史記錄,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2904311/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播系統程式碼,常用搜尋中搜尋歷史,搜尋推薦功能
- Android EditText輸入框實現下拉且儲存最近5個歷史記錄Android
- [20180322]檢視統計資訊的儲存歷史.txt
- 成品直播原始碼,實現在平臺內部的搜尋原始碼
- 直播平臺原始碼,視訊抽幀作為圖片儲存原始碼
- Vue歷史城市搜尋記錄查詢(攜程H5效果)VueH5
- 線上直播系統原始碼,vue實現搜尋文字高亮功能原始碼Vue
- 透過歷史記錄執行本地模型模型
- 短視訊原始碼,視訊轉為圖片儲存原始碼
- win10執行記錄不儲存怎麼辦 win10執行儲存歷史記錄設定方法Win10
- Linux檢視歷史記錄小技巧Linux
- git log檢視提交歷史記錄Git
- 視訊直播app原始碼,軟體主頁向下滑動時隱藏搜尋框APP原始碼
- 直播app原始碼,預設顯示搜尋框 保留搜尋條件APP原始碼
- win10系統怎麼清除資源管理器搜尋歷史記錄Win10
- win10怎樣看歷史記錄_win10檢視歷史記錄的方法Win10
- 線上直播系統原始碼,實現搜尋後介面顯示商品列表效果原始碼
- 使用SQL SERVER儲存過程實現歷史資料遷移SQLServer儲存過程
- Win10執行無法儲存歷史記錄怎麼辦 win10開始執行記錄不儲存如何解決Win10
- 短視訊直播系統,動態內的圖片實現長按儲存
- 直播軟體開發,實現模糊搜尋的程式碼分析
- win10 自帶播放器有歷史記錄嗎_windows10自帶的視訊播放器怎麼檢視歷史記錄Win10播放器Windows
- 谷歌瀏覽器檢視本地儲存資訊谷歌瀏覽器
- 『現學現忘』Git基礎 — 24、Git中檢視歷史版本記錄Git
- TcxMRUEdit 最近歷史記錄
- PHP輕量級影視電影視訊搜尋播放器原始碼PHP播放器原始碼
- 清除 GitHub 歷史記錄的隱私資訊Github
- app直播原始碼,uniapp點選按鈕 儲存頁面為圖片到本地APP原始碼
- 視訊直播原始碼,css實現圖片對角邊框線原始碼CSS
- 手機直播原始碼,Android studio 實現簡單的視訊播放原始碼Android
- 讀書APP原始碼,搜尋欄模糊處理實現APP原始碼
- 直播開發app,實時搜尋、搜尋引擎框APP
- Dynamics CRM 在表單上顯示更改歷史記錄(稽核歷史記錄)
- NOW直播Flutter動態搜尋列表頁實現Flutter
- 短視訊帶貨原始碼,儲存圖片到相簿/相簿原始碼
- 直播商城系統原始碼,點選按鈕 儲存頁面為圖片到本地原始碼
- Git新手教程-檢視倉庫的歷史記錄(四)Git
- 短視訊直播原始碼,拖動滑塊實現圖片驗證效果原始碼