1
// 카운터 응용 프로그램은 백그라운드 작업다시 시작 버튼을 클릭하면 어떻게 재개 할 수 있습니까?
private long mStartTime = 0L;
// 개인 긴 mPauseTime = 0L를 시작한 이후의 시간;
private TextView mTimerLabel;
// 핸들러는 타이머 작업에 메시지를 처리 할 수
private Handler mHandler = new Handler();
static final int UPDATE_INTERVAL = 1000;
String timerStop1;
@Override
public void onCreate(Bundle savedInstanceState) {
mTimerLabel = (TextView) findViewById(R.id.textTimer);
if(mStartTime == 0L){
mStartTime = SystemClock.uptimeMillis();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);
}
timerPauseButton.setTag(1);
timerPauseButton.setText("Pause");
final Button timerPauseButton = (Button) findViewById(R.id.btnTimerPause);
timerPauseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view){
// ChangeButtonText
final int status =(Integer) view.getTag();
if(status == 1) {
mHandler.removeCallbacks(mUpdateTimeTask);
mTimerLabel.setText(timerStop1);
timerPauseButton.setText("Resume");
view.setTag(0); //resume
} else{
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);
timerPauseButton.setText("Pause");
view.setTag(1); //pause
}
}
});
}
// 끝의에게 한 OnCreate
private Runnable mUpdateTimeTask = new Runnable(){
public void run() {
{
final long start = mStartTime;
long millis = SystemClock.uptimeMillis()- start;
int seconds = (int) (millis/1000);
int minutes = seconds/60;
seconds = seconds % 60;
mTimerLabel.setText("" + minutes + ":"
+ String.format("%02d", seconds));
timerStop1 = minutes + ":"
+ String.format("%02d", seconds);
mHandler.postDelayed(this, 200);
}
}
};
것은 내가 클릭하는 이유 일시 중지 버튼이나 타이머도 실행됩니다. 백그라운드에서? 예를 들어 5 초 후에 3 초 안에 일시 중지를 클릭하면 이력서를 클릭하지만 계속해서 8 초에 3 초가 아닌가? 감사합니다.
예, 그렇게 생각합니다. 하지만 그 방법을 말해 줄 수 있니? 고마워요 :) –
그래서 ... 무엇을 성취하려고합니까? – laalto
하나의 단추를 사용하여 일시 중지 및 다시 시작 타이머 기능을 수행합니다. 잠시 멈춤 기능은 이미 끝났지 만 이력서 기능에는 몇 가지 버그가 있습니다 ... 그래서 누구나 코딩을 가르쳐 줍니까? –