ניסיון ליצירת טיימר באנדרואיד - גאדג'טים ומובייל - HWzone פורומים
עבור לתוכן
  • צור חשבון

ניסיון ליצירת טיימר באנדרואיד


CodeNinja

Recommended Posts

היי אנשים, כחלק מאפליקציה שאני עובד עליה עכשיו אני צריך ליצור טיימר פשוט. ניסיתי לעשות זאת כך:





private void starTimer() {
// TODO Auto-generated method stub
new AsyncTask<Integer, Void, Boolean>() {


@Override
protected Boolean doInBackground(Integer... params) {

try {
Thread.sleep(params[0]);
} catch (InterruptedException e) {
e.printStackTrace();
}


return true;
}


@Override

protected void onPostExecute(Boolean result) {
while(true)
{
sec++;
showTime();
if(sec==60)
{
min++;
sec=0;
showTime();
}
if(min==60)
{
hr++;
min=0;
showTime();
}
}
}

}.execute(1000);


}


private void showTime() {
// TODO Auto-generated method stub
tvTimer.setText(hr + ":" + min + ":" + sec);
}


הבעיה שהטיימר לא משתנה ואחרי כמה שניות זה מעיף אותי מהאפליקציה.

יש הצעות?

תודה ושבוע טוב.

שחר. :hat:

קישור לתוכן
שתף באתרים אחרים

אתה לא משתמש נכון ב-AsyncTask. ראה דוגמה נכונה כאן:

http://developer.android.com/reference/android/os/AsyncTask.html

בשביל לשלוח עדכונים לטיימר אתה צריך לדרוס את הפונקציה onProgressUpdate, והפונקציה doInBackground צריכה לקרוא כל כמה זמן ל-publishProgress. הפונקציה onPostExecute נקראת רק פעם אחת בסיום העבודה (כש-doInBackground מסיימת לרוץ).

קישור לתוכן
שתף באתרים אחרים

  • 2 חודשים מאוחר יותר...

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...