2017-03-08 81 views
0

我在45分鐘內有一個CountDownTimer擴展類。 當CountDownTimer完成時(在onFinish),無論用戶身在何處(ActivityFragment),我想要致電新的Activity從擴展CountDownTimer類中調用活動

我該怎麼做?

這是我的Counter類:

public class Counter extends CountDownTimer { 

    private static long millis; 
    private static Counter instance; 

    private Counter(long millisInFuture, long countDownInterval){ 
     super(millisInFuture,countDownInterval); 
    } 

    public static Counter initInstance(){ 
     instance = new Counter(2700000, 1000); 
     return instance; 
    } 

    public static Counter getInstance() throws Exception{ 
     if(instance==null){ 
      throw new Exception("Parameters not initialized. Initiate with initInstance"); 
     } else{ 
      return instance; 
     } 
    } 

    public boolean isFinish(){ 
     return millis <= 0; 
    } 


    @Override 
    public void onTick(long l) { 
     millis = l; 
    } 

    @Override 
    public void onFinish() { 
     // THIS IS WHERE I WANT TO CALL A NEW ACTIVITY ! 
    } 
} 

我打電話給我的計數器是這樣的:

Counter counterClass = Counter.initInstance(); 
counterClass.start(); 

回答

1

你只需要一個上下文發送到您的計數器的構造,它保存在你的櫃檯作爲屬性,然後像這樣打電話給你的櫃檯:

Counter counterClass = Counter.initInstance(getApplicationContext()); 
counterClass.start(); 

然後在你完成您可以正常開始活動:

context.startActivity()