アイデアは、現在のシステム時刻をフロント スクリーンの上部にあるボックスに、時:分:秒のようなデジタル形式で表示することです。継続的に更新する必要があります。ただし、秒を 1 秒ごとに更新すると、システムがダウンする可能性があります。したがって、ユーザーが更新レート (1 秒ごと、5 秒ごと、または 10 秒ごと) を選択できるようにしたいと考えています。問題は、5秒ごとにテキストビューを更新するにはどうすればよいですか? このコードを書きます:
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
とアプリケーションが停止しました。