2021年7月18日 星期日

Android DialogFragment memory leak? 內存洩漏?!

 今天想簡單使用一個 loading dialog,卻發現怎麼用都會跳出 memory leak,看了各路的解法都覺得很麻煩,又想說這種原生的包應該在tracker應該是找得到...

果然看到這裡


通常像這種 loading dialog 我都會當作一個變數存著,調用時判斷是不是 null,然後 show 跟 dismiss 來用,不過 DialogFragment 如果把他當變數存著他就要報 memory leak 了,所以調整作法就是要調用時使用 findFragmentByTag,莫非,這是很基本的問題... 


2021年6月23日 星期三

Android Debug 紀錄之 UnknownHostException

Fatal Exception: java.net.UnknownHostException
Unable to resolve host "xxx.xxx.com": No address associated with hostname



這個問題在於如果你的 call api 時是沒有網路的,會產生的exception,要記得把他 catch 起來^^

Android Debug 紀錄之 CalledFromWrongThreadException、BadTokenException

Fatal Exception: android.view.ViewRootImpl$CalledFromWrongThreadException
Only the original thread that created a view hierarchy can touch its views.



這個完全沒什麼好說的,就是沒在UI thread 調用 UI 物件像是各種 view,到底為什麼這樣的 code 可以通過測試我也是不懂,開發者只要有自己測過就一定會 crash 嘛!

bulid app 時常發生的問題

Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: No outputs for the main artifact of variant: debug

why???

2021年6月21日 星期一

kotlin typealias 用法筆記

之前去聽 kotlin FP 的讀書會時,講者很快的帶過了這個關鍵字,那時候只覺得很神奇,近日為了將 lambda 作為參數傳遞,本 lambda 還帶參數,寫起來落落長,就去找簡化的方法。

Interface Or Lambda 

我使用的場景其實應該可以用 interface 就好,但覺得 typealias 的功能實在太酷,直接將我原本的 lambda 命名為一個叫簡短的名字,雖然參數只能放型別,但感覺上比宣告一個 interface 炫多了XD

typealias aGoodName = (String, String) -> Unit

疑慮的部分就是參數只能放型別,這樣會不會兩個月後就忘記這兩個參數是要幹嘛?!雖然是可以到實際調用處看或是寫註解,但好像不是根本的解決之道...



2021年6月17日 星期四

Android webview programming click class in HTML 自動點擊 webview 的物件



最近有個需求是要依照後端發來的推播去開啟 webview 的指定頁面,頁面的順序像是這樣:

A page click button and then redirect to B page...

以此類推

2021年6月12日 星期六

adb 使用 android.intent.action.VIEW 開啟 deeplink 會缺少部分網址(query的部分)

 這幾天在重構公司的 deeplink 事件,tune 的時候使用 adb 發事件給 android 後發現有帶 query 的網址會少 query 那一段


原本指令

adb shell am start -a android.intent.action.VIEW -d "https://aaa.183club.com/5566/633.html?tab=817&action= fate&value=9478" com.qqq.aaa.ddd