안녕하세요~ 안드로이드 초보입니다.
고수님들의 가르침을 받고자 이렇게 질문을 드립니다.
C++ 쪼금 아는 수준입니다. ^^; 어플 하나 만들어 보려는데 잘 안되는군요. ㅡㅡ

우선 테스트 수준으로 하나 만들어 봤습니다.

전역변수 사용하여, TextView에 3초간격으로 문자열 변경 하려 합니다.
클래스는 다음과 같습니다.

Singleton.java

public class Singleton {
 final String tag = "My_Singleton";
 
 private static Singleton instance;
 private Singleton() {}
 
 //.//전역으로 사용할 변수
 public int nNowIdx = 0;
 
 public static Singleton getInstance() {
  if(instance == null) {
   instance = new Singleton();
  }
  
  return instance;
 }
}


다음은 Activity 상속받은 클래스 입니다.
MyClass.java

import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MyClass extends Activity {
 Singleton MyApplication = Singleton.getInstance();
 final String sPause = "Pause";
 Button btn_Pause = null;
 TextView tv = null;
 
 TimerTask task = null;
 Timer timer = null;
 
 TextView t1;
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     // Use a custom layout file
     setContentView(R.layout.myclass);
     
     t1 = (TextView)findViewById(R.id.TextView01);
     
        btn_Pause = (Button)findViewById(R.id.Btn_Pause);
     tv = (TextView)findViewById(R.id.Btn_Pause);
     btn_Pause.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
       if(sPause.equals(tv.getText())) {
        timer.cancel();
        tv.setText("Resume");
        
           t1.setText("잘 바뀌어요.");
        }
       else {
        timer.schedule(task, 0, 3000);  // <- 여기서 오류나요.
        tv.setText("Pause");
       }
      }
     });
     
     setWord();
     
     //.//
     task = new TimerTask() {
      public void run() {
       My_Run();
      }
     };
     timer = new Timer();
     timer.schedule(task, 0, 3000);
     //.//
 }
 @Override
 protected void onPause() {
  timer.cancel();
  
  super.onPause();
 }
 public void My_Run() {
  if(5 == (MyApplication.nNowIdx + 1)) {
   timer.cancel();
   return;
  }
  
  t1.setText(new Integer(MyApplication.nNowIdx).toString());
    
  MyApplication.nNowIdx++;
 }
}

어플 시작하면, 3초에 한번씩 nNowIdx를 t1을 카운트로 변경하고, 0,1,2,3,4를 모두 수행하면 타이머 캔슬,
중간에 Pause 버튼 누르면, 타이머 캔슬, 버튼 Resume로 변경, 다시 버튼 누르면 타이머 실행...

여기에서, 3가지 궁금한것이 있습니다.
1. 처음 실행시... My_Run() 함수를 3초에 한번씩 잘 들어가는것 같은데요, Log로 찍어보면, nNowIdx가 잘 증가하지 않는것 같습니다.
0, 0, 0, 1, 2, 3... 식으로 3초에 한번씩 로그에 찍히더라구요.

2. Pause 버튼 누르고, 다시 Resume 할때 타이머 스케쥴을 부르면 안되나요?
어떤식으로 다시 불러야 해요? 쓰레드처럼 Resume() 같은 기능은 없나요?

3. Pause 버튼 눌렀을땐, t1 이 잘 변하는데, My_Run()에서 t1 변경하는것은 왜 안돼죠?

회원님... 부탁드립니다. ^^;