특정 시간에 작업을 시작하고 싶습니다.postDelayed를 사용하여 특정 시간에 작업 실행
s = DateFormat.format("hh:mm:ss aaa", d.getTime());
cTime = s.toString(); // current Time
ch = Integer.parseInt(cTime.substring(0,2)); // current hour
cm = Integer.parseInt(cTime.substring(3,5)); // current minute
cs = Integer.parseInt(cTime.substring(6,8)); // current second
if (cTime.substring(9,11).equalsIgnoreCase("pm") && (ch<12)) ch = ch+12;
myDelay=(desiredHour-ch)*3600+(desiredMinute-cm)*60 - cs;
if (myDelay<0) myDelay = 0;
및 desiredHour
다음과 같이
mHandler = new Handler();
mHandler.postDelayed(mLaunchTask, myDelay*1000);
및 myDelay
가 계산됩니다 : 내 코드에서
private Runnable mLaunchTask = new Runnable() {
public void run() {
try {
MY TASK
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
};
을 다음과 같이 내가 mLunchTask
을 사용하여 다음과 같이 그 동안 나는 runnable
및 postDelayed
방법을 사용 및 desiredMinute
은 사용자가 설정합니다. 예상치는 MY TASK
이 desiredHour
및 desiredMinute
에서 시작하여 0 초입니다. 은 그러나 "내 작업은 무작위처럼 보이는 몇 초 지연으로 시작합니다. 위의 코드를 기반으로
감사
을 모든
아, mLunchTask : 내가 가장 좋아하는 것 : –