android - 当数据随时间变化时,如何获取数据?
问题描述
您好,我在我的 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
}
那么我怎样才能实时获得温度呢?
十分感谢 !
解决方案
推荐阅读
- sql - SQL Join 并为缺少的记录获取空输出
- r - 寻找在存在 NA 时使用 ifelse 的 R 函数
- c++ - 我编写了一个用于检查括号的代码,但编译器向我显示了这些错误
- linux - 我可以使用哪个 linux 命令检查 VM 的完整大小?
- nlp - 在使用 ThreadPoolExecutor 时,如何在不影响两个大子列表中的每个子列表的情况下加入两个大子列表?
- bert-language-model - 这些是 PyTorch 中 Bert 预训练模型推理的正常速度吗
- jmeter - 测量仪 | 在较新的 Jmeter 版本 5.x 中重用 Jmeter3.0 脚本时未生成负载
- android - Android 改造读取 ErrorBody.String()
- python - 如何从 Keras 对 model.predict 函数的输出进行排序?
- openstack-nova - 哪个计算节点实例正在处理