آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

توضیح عملکرد دستور timer

alireza  11 سال پیش  11 سال پیش
0 0

سلام

میشه یه نفر توضیح بده این دستور عملکردش چه جوریه دقیقا چیکار می کنه 

به این معنی که دستور داخل run  رو بعد از 5 ثانیه  هر یک ثانیه اجرا می کنه ؟ 

بعد اگه اینجوری اگه من یه لیست ویو از دیتابیس روی گوشی داشته باشم که دیتا بیس گوشی ممکنه تغییر کنه من بخوام به محض تغییر دیتا بیس به لیست ویو اطلاعات جدید اضافه بشه میشه از این کد استفاده کرد ؟ 

من اطلاعات جدید به دیتا بیس وارد میشه برای اینکه به لیست ویو اضافه بشه باید یکبار از اکتیویتی که توش هستم خارج بشم و دوباره وارد بشم من می خوام بدون خارج شدن این تغییر رخ بده لطفا راهنمایی کنید ممنون 


int delay =5000;
int interval =1000;
Timer timer =newTimer();
timer.scheduleAtFixedRate(newTimerTask(){
@Override
publicvoid run(){
//
}
},delay,interval);


+1 0
بله تایم اولی مال اینه که از کی شروع بشه و تایم بعدی هر چند ثانیه یک بار این حلقه کار بکنه این کدی که شما نوشتی یه حلقه مادام هستش .باید یه جایی کنسلش بکنی تازه باید از ترد استفاده بشه چون با این کد صفحه شما فریز میشه (11 سال پیش)
+1 0
خب من نمی خوام کنسل بشه در واقع من دارم اطلاعات رو از یه سرور می خونم وروی دیتابیس ذخیره می کنم و جون سرور دائما تغییر می کنه و معلوم هم نیست کی تغییر می کنه باید دائما چک بشه و اطلاعات جدید حتی در حین اجرای برنامه لیست بشه (11 سال پیش)
0 0
من این رو استفاده کردم ظاهرا درست کار میکنه در مورد گرفتن اطلاعات جدید در حین اجرای برنامه و ریختنش روی دیتا بیس فقط باید اکتیویتی لیست ویو دوباره لود بشه تا نمایش داده بشه و بدون اجرای دوباره این اکتیویتی نمایش داده نمیشه در حالی که به دیتا بیس اضافه شده (11 سال پیش)
0 0
اگه بخوام از ترد استفاده کنم میشه بگین باید چه تغییری به کدم بدم دقیقا ؟ چون مساله ای که هست اره هر از چند باری یه دفعه برنامه گیر میکنه و سرعتش خیلی کند میشه (11 سال پیش)
0 0
مشکل برنامه شما این هست که برای همیشه همین قطعه کد پردازش میشه و سایر کد های شما عمل نمیکنه < دلیلش هم عدم استفاده از ترد هست < همین تکه کد رو میتونی توی یک ترد بندازی (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Criss  11 سال پیش
0 0

 البته من نمیدونم که ممکنه به هندلر نیاز پیدا کنه یا نه ! (ولی چون با  UI کاری نداری فکر نکنم نیاز باشه !)

   Thread thread = new Thread(new Runnable() {

@Override
public void run() {

int delay =5000;
int interval =1000;
Timer timer =newTimer();
timer.scheduleAtFixedRate(newTimerTask(){
@Override
publicvoid run(){
//
}
},delay,interval);


}
});
thread.start();

 

+1 0
بله بهتره كه ترد رو توي uiاجراش نكني (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .