AsyncTask was deprecated 已廢棄(Java 篇)替代解決取代方式
前言
AsyncTask 在 Android 11 (API level 30) 已經被廢棄 (deprecated) 了,官方建議如果有類似非同步邏輯程式執行需求,Java 開發者可以改採用,java.util.concurrent ; Kotlin 開發者可以改採用 Kotlin concurrency utilities 來取代 AsyncTask 方法。
HKT 講師,相關課程
HKT 講師,相關課程:
🎬 從零開始學 Swift 程式設計 免費講義
https://bit.ly/3ekjsEP
🎬 從零開始學 SwiftUI 程式設計 免費講義
https://bit.ly/3xCbUUp
🎬Android 入門開發實戰:口罩地圖(Kotlin) 免費講義
https://bit.ly/2KKZcju
🎬從零開始學 Dart 程式設計 免費講義
https://bit.ly/2OJW6hl
🎬 Flutter 程式設計入門實戰 免費講義
https://bit.ly/37L47Ij
🎬從零開始學 Java 程式設計 免費講義
https://bit.ly/2WlCn6y
🎬 從零開始學 kotlin 程式設計 免費講義
https://bit.ly/2Kx7GrM
替代解決方式
隨著 Kotlin 蓬勃發展,漸漸可以看到 Java 學習資源漸漸變少了,所以這篇 KT 不討論 Kotlin 如何解決,同學有需要的話,可以自行參考官方,而在網路也不難找到 Kotlin 取代 AsyncTask 方法,而這篇就跟大家介紹 java.util.concurrent 取代 AsyncTask 方法。
ExecutorService executor = Executors.newSingleThreadExecutor();
Handler handler = new Handler(Looper.getMainLooper());
executor.execute(new Runnable() {
@Override
public void run() {
//背景處理邏輯程式區塊
handler.post(new Runnable() {
@Override
public void run() {
//處理 UI 邏輯程式區塊
}
});
}
});
這篇只是簡單的敲門磚,想要了解更多 java.util.concurrent 內容可以搜尋「ExecutorService」、「ScheduledExecutorService」。
參考資料
AsyncTask
https://developer.android.com/reference/android/os/AsyncTask
AsyncTask Android example
https://stackoverflow.com/questions/9671546/asynctask-android-example
題外話:裡面有一張圖看起來像鬼畫符,但仔細看畫的很棒。留給大家追憶:
java.util.concurrent
https://developer.android.com/reference/java/util/concurrent/package-summary
Kotlin concurrency utilities
https://developer.android.com/topic/libraries/architecture/coroutines
Android AsyncTask API deprecating in Android 11.What are the alternatives?
https://stackoverflow.com/questions/58767733/android-asynctask-api-deprecating-in-android-11-what-are-the-alternatives
Android AsyncTask is Deprecated: Here’s another way
https://www.simplifiedcoding.net/android-asynctask/
贊助我們
創作不易,知識無價,免費線上教學就像顆種子,希望藉由您的支持與贊助,能夠無後顧之憂的日漸茁壯,努力前行堅持下去。不論捐贈金額的大小,我們都由衷的感謝每位贊助者,都是我們推廣知識、開放共享知識最大的動力!
您的捐贈將用於:請作者喝杯咖啡,鼓勵繼續創作,持續上傳教學影片與更多新技術文章。
Line Pay 打賞
(由 Line Pay 支付平台,提供轉帳服務)
街口打賞
(由街口行動支付平台,提供轉帳服務)
超商代碼繳費打賞
(由綠界科技支付平台,提供超商繳費代碼)
相關連結
HKT 線上教室 每週六日 更新影片
▶ YouTube 頻道
https://goo.gl/3f2pJi
▶ KT 線上教室 臉書粉絲團
https://goo.gl/27H9Li
▶ Udemy 頻道
http://bit.ly/2ZNdnrt
▶ 贊助我們
https://goo.gl/FiKXAu
AndroidStudio / Xcode
Java / Kotlin / Dart / Flutter
APP / AppDevloper
Android / AndroidDevloper
iOS / iOSDeveloper / Swift / SwiftUI
Programer