私は更新時間のアルゴリズムを簡単にすることにしました。どこでもアルゴリズムタイマーを通して書きなさい。しかし、Runnableをメインアクティビティのインターフェイスに実装すると、追加のオブジェクトの作成を避けることができます。実装による時間の更新Runnable
アクティブ化を開くと、1秒ごとに更新されます。しかし、これは起こりません。 私が作成したタグ(ITTERATION)によって、繰り返しが1つしかありません。 HERE
から例を使用して、私はすでに私の脳を破りました。 あなたが使用している場合を除いて...そのままrun()
が処理している...私は
package pac.twoproject;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
public class Main2Activity extends AppCompatActivity implements Runnable {
private static final String TAG = "ITTERATION";
TextView tv;
String time;
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
tv = (TextView) findViewById(R.id.textView);
//scheduler.scheduleAtFixedRate(this, 0, 10, TimeUnit.MILLISECONDS);
}
@Override
protected void onResume() {
super.onResume();
scheduler.scheduleAtFixedRate(this, 0, 1000, TimeUnit.MILLISECONDS);
}
@Override
public void run() {
time = sdf.format(new Date(System.currentTimeMillis()));
tv.setText(time);
Log.d(TAG, time);
}
}
関連する? https://stackoverflow.com/questions/9884246/ tv.setTextを呼び出す前にロギングを試してください。私はそこに例外がスローされたと思う。 – WorldSEnder
私は例外がない。または、ログが表示されないか、時刻が再度表示されます。 – magistr4815
'ScheduledExecutorService'は例外を抑制します。さらに、1つの例外を除いて、実行可能ファイルはデフォルトではスケジュールされていません。あなたのrunメソッド本体をtry-catchで囲み、あなた自身でログを取って、それがどうなるか確認してください。 – WorldSEnder