Java 随时间更新文本视图
已经有一段时间了,但我又回到了android开发。 我正在创建一个简单的秒表应用程序 我有一个Timer类和一个TextView,我想随着时间的推移不断更新它。 我知道我可以创建一个线程来更新TextView,但我不知道该怎么做。我的计时器应该延长线程吗 在一个时间间隔内更新textView的代码看起来如何 这是我的计时器类:Java 随时间更新文本视图,java,android,Java,Android,已经有一段时间了,但我又回到了android开发。 我正在创建一个简单的秒表应用程序 我有一个Timer类和一个TextView,我想随着时间的推移不断更新它。 我知道我可以创建一个线程来更新TextView,但我不知道该怎么做。我的计时器应该延长线程吗 在一个时间间隔内更新textView的代码看起来如何 这是我的计时器类: public class Timer { private double startTime; private double endTime; p
public class Timer {
private double startTime;
private double endTime;
private boolean isRunning;
public Timer() {
startTime = 0;
endTime = 0;
isRunning = false;
}
public void reset() {
isRunning = true;
startTime = System.currentTimeMillis();
}
public double getElapsedTime() {
if (isRunning)
endTime = System.currentTimeMillis();
double timeElapsed = endTime - startTime;
return timeElapsed;
}
}
我也发现了这个。但我不知道该怎么做。如果有任何代码能够说明如何使用我的代码进行更新,我将不胜感激。我没有包括我的主要活动,但它是示例FullScreenActivity 试试这个。应该更准确
class Timer extends AsyncTask<Void, String, String>
{
@Override
protected String doInBackground(Void... params) {
long startTime = Calendar.getInstance().getTimeInMillis();
long nowTime;
while(true && !isCancelled())
{
nowTime = Calendar.getInstance().getTimeInMillis();
publishProgress((float)((nowTime-startTime)/1000)+"");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Override
protected void onProgressUpdate(String... values) {
textview.setText(values[0]);
super.onProgressUpdate(values);
}
}
类计时器扩展异步任务
{
@凌驾
受保护字符串doInBackground(无效…参数){
long startTime=Calendar.getInstance().getTimeInMillis();
时间长;
while(true&!isCancelled())
{
nowTime=Calendar.getInstance().getTimeInMillis();
出版进度((float)((nowTime startTime)/1000)+”;
试一试{
睡眠(100);
}捕捉(中断异常e){
e、 printStackTrace();
}
}
}
@凌驾
受保护的void onProgressUpdate(字符串…值){
setText(值[0]);
super.onProgressUpdate(值);
}
}
当
计时器需要时,不要忘记停止异步任务
。取消(true)代码>您打算为此使用服务吗?就像在相关问题中一样,对于链接问题中被接受的答案,什么不起作用?懒得使用谷歌?似乎应该起作用。我可能错过了什么。我已经创建了一个setTextView()方法,以便可以在Timer类中使用指定的textView。但是,当我从MainActivity设置textView时,它不会得到更新。我想我醒来时会看看的。谢谢你的帮助我今天在办公室有空,所以我尝试了我的代码。它在emulator上运行良好,但在我的HTC 816G上却不起作用。希望能有帮助。它还使系统滞后,所以在循环中插入100毫秒的线程睡眠可能会有所帮助。