Как я уже говорил ранее, вам нужно изменить свой textView в потоке пользовательского интерфейса (в потоке, который создал компонент).
Для того, чтобы сделать это, используйте обработчик, например так: (Не включайте циклваша ветка, просто отправьте сообщение обработчику)
private TextView tv1;
Handler tick_Handler = new Handler();
MyThread tick_thread = new MyThread();
private class MyThread implements Runnable {
public void run() {
String txt = "Vlakno id:" + Thread.currentThread().getId()+" THREAD";
Log.v("MyActivity", txt);
//tv1.setText(txt);
showTime(tv1);
tick_Handler.postDelayed(tick_thread, 1000);
}
}
String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
private void showTime(TextView tv ){
Calendar cal = Calendar.getInstance();
tv.setText(sdf.format(cal.getTime())+" "+System.currentTimeMillis());
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv1 = (TextView) findViewById(R.id.tv);
tick_Handler.post(tick_thread);
}
Кстати, если вы хотите иметь точный таймер, вы должны отмечать каждые 300 мс.Вы можете увидеть несколько странных секунд, если будете выполнять метод showtime каждую секунду.