0
내가 가진이 코드타이머 작업은 항상 false를 돌려
XML 변화를 확인ischanged = false;
public void doTimerTaskforXML(final GeneralObject Gen_Obj) {
XMLTimerTask = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
String NewXML = "";
XMLParser parser = new XMLParser();
NewXML = parser.getXmlFromUrl(Gen_Obj.URL);
if (NewXML != null && NewXML != ""
&& NewXML.length() > 0) {
if (!Gen_Obj.XML.equals(NewXML)
|| Gen_Obj.XML.length() != NewXML.length()) {
ischanged = true;
Log.i(TAG, "XMl has been changed");
}
}
}
});
}
};
XMLTimer.schedule(XMLTimerTask, 0, 60000);
Log.i(TAG, "XNL not change");
}
public boolean IsChanged(GeneralObject Gen_Obj) {
doTimerTaskforXML(Gen_Obj);
Log.i(TAG, "ischanged= " + ischanged);
return ischanged;
}
나는 기능은 IsChanged 전화 그것이 반환 alwayes 반환의 소요 거짓
어떤이의 잘못 코드 ?
하지만 다른 시간에이 타이머를 작동하고 싶습니다. 예를 들어, 처음으로 5 분 동안 두 번째로 10 분 동안 작동하고 싶습니다. – user3604882
AsyncTask를 사용하여 어떻게 할 수 있습니까? – user3604882
@ user3604882 코드 흐름을 이해하지 못했습니다. 하지만 IsChanged 메서드는 한 번만 호출된다고 가정하므로이 메서드에서 부울 값을 반환하지 않아도됩니다. isChanged = true로 설정하면 다른 메서드를 호출하여이를 기반으로 작업을 수행 할 수 있습니다. – essess