Как я могу получить данные, в то время как данные меняются со временем? - PullRequest
0 голосов
/ 03 февраля 2019

Здравствуйте, я получаю данные с веб-сайта, используя JSON в моем приложении для Android.Поэтому я создал 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
}

Итак, как я могу сделать это, чтобы иметь в реальном времени температуру?

Спасибо большое!

...