2017-02-24 4 views
1

이 코드는 10 초 타이머가있는 서비스에 카운트 다운 타이머가 있습니다. 내가하고 싶은 일은 onFinish() 메소드에서 앱 밖에있을 때도 자동으로 Activity (MainActivity)를 실행하고 싶습니다.타이머 후 활동 시작

public class TimeDisplayTimerTask extends TimerTask{ 
    CountDownTimer timer; 

    NotificationCompat.Builder notification; 
    private static final String TAG="com.timer"; 
    private Handler mHandler = new Handler(); 

    @Override 
    public void run() { 

    // run on another thread 
    mHandler.post(new Runnable() { 

     @Override 
     public void run() { 

      // display toast 
     timer = new CountDownTimer(10000, 1000) { 
      @Override 
      public void onFinish(){ 

      } 

      @Override 
      public void onTick(long millisUntilFinished) { 
      Log.i(TAG,"" + millisUntilFinished/1000); 

      } 
     }; 
     timer.start(); 
     } 

    }); 

    } 
} 
+0

더 나은 서비스를 수행하고 SingleTask에 MainActivity의 설정 점심 모드 –

답변

0

아마 당신은 라이프 사이클 메소드의을 무시하고 또한 당신이 경우 사용자 잠금 화면에서 실행을 완료 전까지 CPU를 계속 운영 할 PARTIAL_WAKE_LOCK을 사용해야합니다.

1

10 초 후에 주요 활동을 열어보십시오.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      // launch your main activity here and finish your current activity 
     } 
    }, 10000); 
} 
0

서비스를 이용하고 있다면 단순히 의도를 사용하여 활동을 시작하십시오.

Intent i = new Intent(); 
i.setClass(this, MainActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(i); 
0

당신은 당신의 TimeDisplayTimerTask로 활동 컨텍스트를 전달하는 NEET : 당신의 onFinish() 방법이 코드를 넣어

public class TimeDisplayTimerTask extends TimerTask{ 
CountDownTimer timer; 

NotificationCompat.Builder notification; 
private static final String TAG="com.timer"; 
private Handler mHandler = new Handler(); 
private Activity mActivity; 

public TimeDisplayTimerTask(Activity activity){ 
    mActivity = activity; 
    super(); 
} 

@Override 
public void run() { 

    // run on another thread 
    mHandler.post(new Runnable() { 

     @Override 
     public void run() { 

     // display toast 
     timer = new CountDownTimer(10000, 1000) { 
      @Override 
      public void onFinish(){ 
        if (activity != null { 
         Intent startIntent = new Intent(activity, MainActivity.class); 
         startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
         activity.startActivity(startIntent); 
        }  
      } 

      @Override 
      public void onTick(long millisUntilFinished) { 
       Log.i(TAG,"" + millisUntilFinished/1000); 

      } 

     }; 
     timer.start(); 
    } 

}); 

} 
}