CMAndroidBook
  • CMoney Android Book
  • 新人訓練
    • 工具篇
      • IDE
      • Firebase
      • Flurry
      • Postman
    • Coding Style
    • 架構
  • 基礎課程-預習
    • Android Studio
    • Kotlin練習
      • Google Code Labs
        • 1: Get started
        • 2: Kotlin basics
        • 3: Functions
        • 4: Object-oriented programming
        • 5.1: Extensions
      • 程式練習題
      • 參考
  • 建立第一個App
    • 目標
    • 建立專案
    • 專案結構
    • 手機開發者權限
    • IDE Git常用操作
      • 初始化Git
      • Commit
      • 新增、刪除、切換Branch
      • 合併Branch
      • 解衝突
  • Coroutine
    • Kotlin-Coroutine
      • 並發與並行
      • Overview
      • 概念
      • Scope和Context
      • Suspend修飾符
    • 習題
    • 參考資源
Powered by GitBook
On this page
  • 習題一
  • 習題二
  • 習題三
  • 習題四

Was this helpful?

  1. Coroutine

習題

依照順序完成習題,千萬不要直接跳到二。

PreviousSuspend修飾符Next參考資源

Last updated 3 years ago

Was this helpful?

習題一

嘗試完成(請忽略第6, 9, 10,12步驟)

習題二

目前有四種API要發送,分別為、、、Detail。其中UseName、Company、Guid要同時執行,當這三道API執行完畢後,才會執行Detail。

Detail的API會依照UserName、Company、Guid的結果依照順序組合而成, 請以三道API回傳內容取代{},來多次執行Detail API請求(預計共要執行五次喔)。

API模板:https://raw.githubusercontent.com/cmmobile/AndroidApiFakeResponse/master/{UserName}_{Company}_{Guid}.json

實際案例:

以上以Coroutines實作。

請輸出每一次API請求的URL及Response, 並於每個請求輸出間間隔一行, 答案要顯示在螢幕上或Console, 以下為輸出Console輸出範例

RequestUrl: https://...
Response: { ... }

RequestUrl: https://...
Response: [ ... ]

習題三

若未使用CoroutinScope.async擴充方法請試著將習題二之須同步執行的API改為使用之 並比較兩者之差異,紀錄於root/README.md

習題四

若API發生例外則Coroutines該如何處理之, 在launch、async、CoroutineScope又可能有差異, 可以以實作回答。 例外發生時CoroutineScope管理的child job因為Job會有不同的行為, 請紀錄於root/REAMDE.md中。

Use Coroutines in your Android App
UserName
Company
Guid
https://raw.githubusercontent.com/cmmobile/AndroidApiFakeResponse/master/Chasity_EXOTECHNO_01fe1948-4210-4082-9235-5051d3cdeb96.json