协程出现问题

时间:2019-10-05 10:44:43

标签: android kotlin kotlin-coroutines

协程存在问题。

由于某些原因,我的PolyLine没有出现在地图上。尽管按照计划,它们应该会出现。可能是什么问题呢?

我可能写得不正确,但我仍然是一个完整的初学者,不知道应该怎么写。我寻求您的帮助

private fun GetDirectionn(url: String, index: Int){
        lifecycleScope.launch(Dispatchers.Main) {
            //polylineFinal[index] = withContext(Dispatchers.IO) {
                try {
                    this@MainActivity.runOnUiThread {
                        openBottomSheetFinal()
                    }
                    val client = OkHttpClient()
                    val request = Request.Builder().url(url).build()
                    val response = client.newCall(request).execute()
                    val data = response.body()!!.string()
                    Log.d("GoogleMap", " data : $data")
                    val result = ArrayList<List<LatLng>>()
                    try {
                        val respObj = Gson().fromJson(data, GoogleMapDTO::class.java)

                        val path = ArrayList<LatLng>()

                        for (i in 0 until respObj.routes[0].legs[0].steps.size) {
                            path.addAll(decodePolyline(respObj.routes[0].legs[0].steps[i].polyline.points))
                        }
                        result.add(path)
                    } catch (e: Exception) {
                        e.printStackTrace()
                    }
                    try {
                        val lineOption = PolylineOptions()

                        for (i in result.indices) {
                            lineOption.addAll(result[i])
                            lineOption.width(10f)
                            lineOption.color(colorArray[index])
                            lineOption.geodesic(true)
                        }

                        this@MainActivity.runOnUiThread {

                            if (polylineFinal[index] != null) {
                                polylineFinal[index]!!.remove()
                                polylineFinal[index] = null
                            }

                            polylineFinal[index] = map.addPolyline(lineOption)

                            polylineFinal[index]!!.startCap = CustomCap(
                                bitmapDescriptorFromVector(
                                    applicationContext,
                                    R.drawable.icon_round_black
                                )
                            )
                            polylineFinal[index]!!.endCap = CustomCap(
                                bitmapDescriptorFromVector(
                                    applicationContext,
                                    R.drawable.icon_round_black
                                )
                            )
                        }
                        //polylineFinal[index]

                    } catch (e: Exception) {
                        //null
                    }
                } catch (e: Exception) {
                    //null
                }
            //} as Polyline
        }
    }

0 个答案:

没有答案