[問題] 初學 onCreate 內部觀念問題

作者: wheado (principal component QQ)   2018-05-08 14:23:44
先附上我的 code ,這是一個要求權限的簡單練習
https://ideone.com/7Oc0El
第一個是我想在 onCreate 中簡化我的 code
把裡面內容寫到一個 Permission class
其中裡面有一個 askPermission 方法
而且 onRequestPermissionsResult 這個 callback 也在 Permission 中改寫
這樣我只要在 onCreate 中改寫成 "Permission().askPermission" 就好了
也可以不用在 MainActivity 中看到 onRequestPermissionsResult
第二個問題是我想在 要求權限/已經有權限 以後才執行
Log.i(tag,"Ok, the permission is agree, then you can write some work!!!!")
我的這個例子每次 run 都會跑出這個 Log 然後模擬器出現要求權限
這樣很不合理 = =
我想要求完權限再給我 Log
就是一個我要先要求權限
接著繼續把 onCreate 跑完 => onStart => onResume
小弟初學在網路有看到一些例子
但是測試以後發現第一個問題可以部份解決,但第二個問題還是一樣
求指教
以下是資料連結
https://stackoverflow.com/questions/50206419/override-fun-onrequestpermissionsresult-on-other-class
https://stackoverflow.com/questions/50171998/how-to-use-this-and-context-in-other-class-android-kotlin
作者: t52101t (五子棋)   2018-05-08 15:25:00
這樣那個Log要寫在onRequestPermissionsResult裡呀
作者: LZN (秋)   2018-05-08 16:10:00
requestPermissions是non-block的行為, 會有另一個activity跑在你的前景顯示權限要求UI, 而你原本的activity會退到背景
作者: y3k (激流を制するは静水)   2018-05-09 00:10:00
你可以多寫一點 就會知道onRequestPermissionsResult()是必要的 有個很重要的概念是onCreate()、onStart()這類function是"你寫好這時候要幹嘛 然後別人(呼叫這個APP的 也就是系統)照他的步驟呼叫這些function

Links booklink

Contact Us: admin [ a t ] ucptt.com