android数字时钟每5秒更新一次
其想法是在前屏幕顶部的一个框中以数字格式显示当前系统时间,如小时:分钟:秒。它需要不断更新。但是,如果每1秒更新一次秒数,可能会导致系统停机。因此,我希望用户能够选择每1秒、5秒或10秒更新一次的速率。问题是:如何每5秒更新一次textview? 我们编写以下代码:android数字时钟每5秒更新一次,android,textview,clock,digital,Android,Textview,Clock,Digital,其想法是在前屏幕顶部的一个框中以数字格式显示当前系统时间,如小时:分钟:秒。它需要不断更新。但是,如果每1秒更新一次秒数,可能会导致系统停机。因此,我希望用户能够选择每1秒、5秒或10秒更新一次的速率。问题是:如何每5秒更新一次textview? 我们编写以下代码: package com.example.software; import android.os.Bundle; import android.app.Activity; import android.text.format.Tim
package com.example.software;
import android.os.Bundle;
import android.app.Activity;
import android.text.format.Time;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Time dtNow = new Time();
dtNow.setToNow();
int hours;
int minutes;
int second;
int i=100;
int j=0;
TextView txt =(TextView) findViewById(R.id.txt_view);
while(i>0){
hours = dtNow.hour;
minutes= dtNow.minute;
second = dtNow.second;
txt.setText(hours+":"+minutes+":"+second);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
我将此代码更新为:
package com.example.softwareproject;
import android.os.Bundle;
import android.app.Activity;
import android.text.format.Time;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
Time dtNow = new Time();
int hours;
int minutes;
int second;
int i=100;
int j=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
display();
}
public void display(){
new Thread(new Runnable(){
public void run() {
while(i>0){
TextView txt =(TextView) findViewById(R.id.txt_view);
dtNow.setToNow();
hours = dtNow.hour;
minutes= dtNow.minute;
second = dtNow.second;
txt.setText(hours+":"+minutes+":"+second);
try{
Thread.sleep(5000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
}
但我仍然有一个错误:
[2012-12-14 03:54:25 - SoftwareProject] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.softwareproject/.MainActivity }
[2012-12-14 03:54:25 - SoftwareProject] ActivityManager: Warning: Activity not started, its current task has been brought to the front
应用程序停止。执行此操作时,应用程序将永远不会离开onCreate循环。您应该创建一个asyntread或runnable,并将while循环放在其中。亲爱的dmaij,我按照您所说的做了,应用程序运行了,但它显示了时间,并在5秒钟后更新了错误发生的时间并停止了应用程序。很巧,软件项目已经停止,但我不知道为什么:,你知道吗?这是出现在控制台窗口中的消息:[2012-12-14 03:54:25-SoftwareProject]ActivityManager:Starting:Intent{act=android.Intent.action.MAIN cat=[android.Intent.category.LAUNCHER]cmp=com.example.SoftwareProject/.MainActivity}[2012-12-14 03:54:25-SoftwareProject]ActivityManager:警告:活动未启动,其当前任务已被带到front@HusseinA.Hammoud,此消息通常在应用程序已在运行且您尝试重新运行时出现。在清除数据并强制停止后尝试运行应用程序亲爱的Shreya Shah,我重新运行应用程序,控制台窗口中的错误消失,但5秒钟后仍停止,不幸的是,软件项目已停止对话。