2012-12-06 2 views
0

나는 활동 A, B, C, D를 가지고있다 ... 나는 활동 A에서 countdowntimer를 만든다 ... 나는 활동 B, C, D에서 그것의 방법을 호출하고 싶다. 타이머 변수를 정적으로 만들려고했지만 몇 가지 문제가 있으며 제대로 작동하지 않습니다. 또한 좋은 프로그래밍 방법이 아닙니다. 이렇게하려면 다른 방법이 있습니까 ??CountDownTimer를 여러 액티비티에 공통으로 만드는 방법은 무엇입니까?

public class CountTime extends Activity { 

    static MyCount count; 
    Button clickBtn; 
    TextView tv; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.customanim); // 5000 is 
                   // the 
                   // starting 
                   // number 
                   // (in 
                   // milliseconds) 
     // 1000 is the number to count down each time (in milliseconds) 
     count = new MyCount(5000, 1000); 
     count.start(); 
     tv = (TextView) findViewById(com.example.sample.R.id.textView1); 

     clickBtn = (Button) findViewById(R.id.button1); 
     clickBtn.setText("Click me"); 
     clickBtn.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       Intent my = new Intent(getApplicationContext(), 
         MainActivity.class); 
      //my.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(my); 
      } 
     }); 
    } 

    @Override 
    public void onUserInteraction() { 
     // TODO Auto-generated method stub 
     super.onUserInteraction(); 
     //count.start(); 
    } 

    @Override 
    protected void onPause() { 
     // TODO Auto-generated method stub 
     super.onPause(); 
     count.cancel(); 
    } 

    @Override 
    protected void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 
     count.start(); 
    } 

    // countdowntimer is an abstract class, so extend it and fill in methods 
    public class MyCount extends CountDownTimer { 
     public MyCount(long millisInFuture, long countDownInterval) { 
      super(millisInFuture, countDownInterval); 
     } 

     @Override 
     public void onFinish() { 
      tv.setText("done!"); 
      Toast.makeText(getApplicationContext(), "Finsihed", Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public void onTick(long millisUntilFinished) { 
      tv.setText("Left: " + millisUntilFinished/1000); 
     } 
    } 

    @Override 
    protected void onDestroy() { 
     // TODO Auto-generated method stub 
     super.onDestroy(); 
    } 
} 
+0

이유를 작성하지 않는 반 환을? –

+0

서비스를 확장하는 활동에 타이머 코드를 작성하십시오. 활동 A에서 서비스를 시작하십시오. – Deepzz

+0

왜냐하면 ... 나는 onfinish 방법으로 새로운 활동을 시작하고 싶습니다. – Audi

답변

관련 문제