私のサービスでは、値は 1 秒ごとに更新されます。実行中のアクティビティは1回実行されるため、新しい結果と更新でテキストビューまたは関数を更新できません.アクティビティでタイマーを使用しようとしました:
Timer timer = new Timer();
timer.scheduleAtFixedRate(
new java.util.TimerTask() {
@Override
public void run() {
if(Serve.Connecting){
tv = (TextView)findViewById(R.id.textView1);
tv.setText("Connecting");
ProgressBar PB = (ProgressBar) findViewById(R.id.progressBar1);
PB.setProgress(25);
}
if(Serve.Connected){
tv = (TextView)findViewById(R.id.textView1);
tv.setText("Connected");
ProgressBar PB = (ProgressBar) findViewById(R.id.progressBar1);
PB.setProgress(50);
}
if(Serve.Connected && Serve.loading.FALSE){
tv = (TextView)findViewById(R.id.textView1);
tv.setText("Loading");
ProgressBar PB = (ProgressBar) findViewById(R.id.progressBar1);
PB.setProgress(75);
}
if(Serve.Connected && Serve.loading){
tv = (TextView)findViewById(R.id.textView1);
tv.setText("Done");
ProgressBar PB = (ProgressBar) findViewById(R.id.progressBar1);
PB.setProgress(100);
Intent intent = new Intent(Loadingpage.this, Setup.class);
startActivity(intent);
finish();
frstscr=false;
}
}},
200, 500
);
しかし、うまくいかなかったので、そのハンドラーの例を使用してみました:
private Handler handler = new Handler();
runnable.run();
private Runnable runnable = new Runnable()
{
public void run()
{
//
// Do the stuff
//
handler.postDelayed(this, 1000);
}};
しかし、うまくいきませんでした。アイデアはありますか?? while(frstscrn){fun } も使用しました。ここで、frstscrn は、アクティビティが実行中であることを識別するブール値です。