YY天氣 應(yīng)用展示
主界面
功能演示
添加桌面小插件
功能:
- 后臺自動更新
- 桌面小插件
- 提供未來五天的天氣預報
- ...
開發(fā)過程所遇到的坑
HttpURLConnection 做網(wǎng)絡(luò)請求設(shè)置 setDoOutput(true) 時 setRequestMethod("GET") 將無效痴颊,會變?yōu)?POST方法.
(在要求請求方法為 GET 的情況下赏迟,只能設(shè)置 setDoInput(true); )網(wǎng)絡(luò)請求的address有中文時,在 Android5.0 系統(tǒng)以下因為編碼問題導致 address 亂碼
(統(tǒng)一將 address 中有中文的部分通過 URLEncoder.encode( 中文 ,"utf-8") 轉(zhuǎn)換)RecyclerView 并沒有提供 Item 點擊事件蠢棱,解決方法:
12312.png
通過構(gòu)造方法傳入一個接口實例锌杀,在 onBindViewHolder 中,在 Item 布局控件的 onClick 方法中回調(diào)我們傳入的 listener 泻仙,并通過 holder.getLayoutPosition() 返回當前被點擊的 Item 下標糕再。
- 項目由于需要發(fā)起兩個不同的網(wǎng)絡(luò)請求,最終都會去調(diào)用 RecycleView 更新數(shù)據(jù)玉转,當同一時間多次更新 RecycleView 突想,數(shù)據(jù)來源于 SharedPreferences 時,有可能因為 SharedPreferences 的線程安全導致效率低究抓,從而在更新 RecycleView 上的數(shù)據(jù)顯示時會 奔潰猾担。
(兩次網(wǎng)絡(luò)請求分別用一個標記值標記,當兩個標記值都為 true 時漩蟆,再統(tǒng)一更新)
YY天氣開源(GitHub) & APP上架商店的地址
希望大家多多支持垒探,GitHub點擊star;應(yīng)用商店給好評怠李,謝謝大家圾叼,大家對該項目有什么想問的可以留言,我看到會回復的捺癞。
GitHub: https://github.com/RunHuaOil/YYWeather
YY天氣(酷安網(wǎng)):http://www.coolapk.com/apk/com.runhuaoil.yyweather
(也上架了騰訊應(yīng)用寶夷蚊,小米應(yīng)用商城正在審核)