原创 微信小程序的setBLEMTU說明

最近在做微信小程序的藍牙功能,連接的設備是MPOS,但是收發數據發現,如果手機端接收的數據超過20byte就無法有效收到。 查詢了很多資料,也嘗試了抓報藍牙的btsnoop_hci.log來進行分析,發現並沒有收到notify的數據,說明

原创 子線程居然可以更新UI!

一、子線程更新了UI 發現了一個奇怪的情況,我在fragment初始化的時候,new了一個子線程。然後在子線程設置了一個textView的字符串,並且設置了ta的click監聽事件 @Override protected voi

原创 List數組刪除數據時候的注意到

List數組在進行刪除操作的時候,調用remove方法,但是remove之後會導致數據大小減1。 如果我們使用for循環歷遍,會存在一個問題,remove之後導致後一位因爲前移而無法被歷遍。所以,在進行remove的時候,不要使用for循

原创 MQTT源碼解析

  一、MQTT的創建和connect流程 1.Android端實現mqtt,首先會new一個MqttAndroidClient,並傳入需要的參數。 首先,MqttAndroidClient是如何創建的呢? public MqttAnd

原创 mqtt開發總結

源碼解析博客推薦 https://juejin.im/post/5cd66c4af265da037516bec3 1.遇到的問題 1.1同一設備,多次創建mqtt client 在最開始的代碼實現中,發現同一個設備有兩個client。因爲

原创 Jetpack之Navigation的學習demo

1.java版demo https://github.com/fengjw1/NavigationDemoOfJava   2.細節說明: navigation和menu綁定要注意兩個地方: 抽屜籃的時候,注意AppbarConfigur

原创 使用GreenDao數據庫的記錄

1.List<T>自定義數據的增加方法: 寫一個convert轉化器,然後用FastJson的格式轉化方法來處理轉化問題 例如: 數據庫的一個自定義List,叫priceArray. 然後就進行轉化: public static c

原创 Socket丟包解決對策

socket使用過程中遇到個問題:因爲數據量太大,大約有2w個字節的響應數據報,之前同事代碼實現的時候沒有做完整的接收處理。僅使用InputStream.available()做了一次讀取,然後就遇到問題了! 會發現,每次讀取的時候獲得的

原创 Android接口回調

Android自定義的接口回調主要邏輯如下: 1.定義接口。 例如: class interface IListener{ /** *成功狀態 **/ void onSuccess();

原创 getLocationOnScreen和getLocationInWindow的區別

測試發現,大多數佈局情況下,兩者獲得的內容是沒有區別的,唯一的區別就是在window的彈框(比如dialog等)出現的情況下。 其他情況下,獲得的都是getLocationOnScreen的值。 兩者並沒有區別。   參考博客:https

原创 使用GreenDao的記錄(二)

GreenDao主要是考慮四個對象:DaoMaster,DaoSession,DBHelper和DBManager。 1.DaoMaster主要是註冊表 2.DaoSession主要是做數據庫的增刪改查的映射,DaoSession的初始化

原创 Mqtt斷開連接disconnect報錯原因

最近在用mqtt做及時通信,mqtt服務本身是放在本地的service服務裏面運行,在應用關閉的時候,mqtt服務也要斷開連接,不然會繼續佔用服務器的cpu,增加服務器負擔。所以,在service的onDestroy中,需要調用MqttA

原创 viewHolder的作用

viewholder的作用是因爲Android有個recycler的反覆循環器,viewholder就是藉助他來做到循環利用itemview。 例如: 默認加載10個itemview,初始化的時候創建一個viewholder,並把10個i

原创 抽象類中的非抽象方法

抽象類的作用相當於模板 其內部可以有抽象方法和非抽象方法: 其中抽象方法必須被繼承該抽象類的子類重寫; 而非抽象方法則不需要。 那麼,非抽象方法的目的是什麼呢? 重複利用。 當多個子類繼承同一個抽象類的時候,有些共同的屬性,不需要子類特別

原创 javax.net.ssl.SSLPeerUnverifiedException: Hostname xxx.app.xxx.com not verified:

最近遇到Hostname報錯問題,使用的sslSocketFactory是網上的常規版本,所以寫法是正確的。 而這個問題的原因是服務器的host和本地的域名不匹配,我們看一下CA證書,例如baidu.com的證書: 主要看使用者的C