[英]Updating a textview periodically in android
我目前正在开发一个android应用程序。 它需要定期更新textview值。
例如,我想每秒增加10个值。 我尝试使用以下代码,但无法正常工作:仅在增量完成后才更新textview
package com.example.stack1;
import android.os.Bundle;
import android.app.Activity;
import android.widget.TextView;
public class MainActivity extends Activity{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void onResume(){
super.onResume();
TextView output=(TextView) findViewById(R.id.output);
output.setText(String.valueOf(0));
System.out.println(0);
try {
Thread.sleep(10000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
output.setText(String.valueOf(10));
System.out.println(10);
try {
Thread.sleep(10000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
output.setText(String.valueOf(20));
System.out.println(20);
}
}
output
是main.xml文件中的textview。 该文件仅包含该对象。
注意:textview的预期输出为“ 0”,在20秒“ 20”之后的10秒为“ 10”。 但是,使用此代码,输出将一直空白直到20秒,然后显示“ 20”。
您可能想要使用AlarmManager之类的东西而不是sleep()
因为sleep()
会在睡眠时间内停止该过程中的所有操作。
它没有显示任何内容的原因是您正在onResume()
方法中进行操作。 因此,当它加载显示内容时,在它实际显示任何内容之前,它正在处理该方法以为用户进行设置。
因此,您想要的是:
您通过sleep()
命令得到的是:
使用AlarmManager,您可以在onResume()
方法中初始化显示加载,然后AlarmManager每十秒钟递增一次值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.