首页 > 解决方案 > 当数据随时间变化时,如何获取数据?

问题描述

您好,我在我的 android 应用程序中使用 JSON 从网站获取数据。所以我为此创建了一个 AsynsTask 但问题实际上是我得到了我房子的温度和这个变化,我不想按下按钮来实时查看我想要的新温度变化的温度。我怎样才能做到这一点 ?

这是我的代码:

inner class MyAsyncTask : AsyncTask<String, String, String>(){
    override fun onPreExecute() {

    }

    override fun doInBackground(vararg p0: String?): String {
        try{
            test1.text = ""
            val url = URL(p0[0])
            val urlConnect = url.openConnection() as HttpURLConnection
            urlConnect.connectTimeout = 7000
            var inString = ConvertStreamToString(urlConnect.inputStream)
            publishProgress(inString)
        }catch(ex:Exception){}
        return " "

    }

    override fun onProgressUpdate(vararg values: String?) {
        try{
            var json = JSONArray(values[0])
            var temperature = json.getString(0)
            test1.text = "Temperature :"+temperature
            }catch(ex:Exception){}
    }
    override  fun onPostExecute(result: String?){}

}

fun ConvertStreamToString(inputStream:InputStream):String{
    val bufferReader = BufferedReader(InputStreamReader(inputStream))
    var line:String
    var AllString:String = ""
    try{
        do{
            line = bufferReader.readLine()
            if(line!=null){
                AllString+=line
            }
        }while(line!=null)
        inputStream.close()
    }catch(ex:Exception){}
    return AllString
}

那么我怎样才能实时获得温度呢?

十分感谢 !

标签: androidjsonkotlinreal-time

解决方案


推荐阅读