بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
توضیح عملکرد دستور timer
سلام
میشه یه نفر توضیح بده این دستور عملکردش چه جوریه دقیقا چیکار می کنه
به این معنی که دستور داخل 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();
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .