我試圖弄清楚我的應用程序的數據使用量有多少被我用OkHttpClient發送的請求使用,並且我看到我可以使用TrafficStats來標記然後用標籤查看網絡活動。Android - OkHttp - 使用TrafficStats標記所有網絡請求
,如果我這樣做
TrafficStats.setThreadStatsTag(1234);
okHttpClient.execute(request);
那麼它實際上其標記好(ISH),但後來當我使用異步方法(okHttpClient.enqueue(request)
)它沒有(這是有點明顯,雖然我希望他們對此我有支持)。
所以我嘗試了幾件事情:
- 設置調度程序客戶端在那裏是一個正常的調度,基本上在每一個執行替換它與新的可運行收到了Runnable首先標籤線程的再運行原始的可運行 - 一些流量被標記,但很多不是。
- 設置一個套接字工廠,它基本上標記它產生的每個套接字 - 仍然有一些標記的流量,但大部分不是。
任何想法?
是的,我想它比其他方法更好地工作的攔截器,但也並不十分準確:/ 你知道的一個很好的方法來計算來自攔截器中的請求/響應對象的字節? (我可以很容易地獲得體長,但是還需要統計網址,方法和頭部信息,我擔心它會不夠準確) – dog
您可能可以使用自定義的SocketFactory和Socket類來完成它。 –