2017-03-08 11 views
0

私はCountDownTimer拡張クラスを45分間持っています。 CountDownTimerが完了したとき(onFinish)、どこのユーザーが(ActivityまたはFragment)であれば、新しいActivityを呼び出すことにします。CountDownTimerクラスのアクティビティを呼び出す

どうすればいいですか?

これは私のカウンタークラスです:

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() 
関連する問題