1

我的应用程序启动屏幕用于从网络获取数据,数据获取成功后,我想将用户发送到主屏幕。通常,我们使用 Thread.sleep 或 Handler 在 Splash 屏幕上停留一段时间。我们可以使用 Kotlin 的挂起功能来做到这一点吗?

4

2 回答 2

1

使用Anko,简单明了,你的主人是JetBrains

步骤 1. 获取 anko

把它放在你的app/build.gradle

dependencies {
    ...
    implementation "org.jetbrains.anko:anko:0.10.5"
    ...
}

步骤 2. 使用 anko

在您的内部,SplashActivity您的onCreate()尝试如下

doAsync {
    val result = URL("your request here").readText()
    //depending of your result go to MainActivity
}

在这里查看更多信息Anko

于 2018-07-10T14:26:37.090 回答
0

当您在 Android 中使用 Kotlin 时,我们不能错过的一个库是Anko

在这里我添加了代码片段

async {
    val result = URL("<api call>").readText()
    uiThread { 
        Log.d("Request", result)
        longToast("Request performed") 
    }
}

否则你可以使用普通的 AsyncTask

class GetWeatherAsyncTask : AsyncTask<Params, Progress, Result>() {

    override fun onPreExecute() {
        // Before doInBackground
    }

    override fun doInBackground(vararg params: Params?): Progress {
        // ...
        publishProgress(progressResult)

        return result
    }

    override fun onProgressUpdate(vararg values: Progress?) {
       // use progressResult to do things such as updating UI...
    }

    override fun onPostExecute(result: Result?) {
        // Done: use result which is returned from doInBackground()
    }
}
于 2018-07-10T14:08:02.343 回答