غیر فعال کردن یک thread با خارج شدن از Activity
سلام
یک thread مثل همونی که استاد درس داده درست کردم یعنی تو یک class جدید بعد گفتم بعد از چند ثانیه یک پیام بده "وقت تموم"
اول این پیام toast گذاشتم دیدم با اینکه از Activity خارج میشم بعد از مدتی توی یک اکتیوتی دیگه پیام توست نشون داده میشه
درننتیجه برای نشون ندادش آمدم اون thread تو کلاس خود اکتویتی نوشتم تا نشون داده نشه دیدم نمیشه
از شرط this instance of استفاده امدم بکنم که میگه گویا این شرط تو متد Runnable کار نمیکنه
حالا چیکار کنم تا این پیام توست نشون داده نشه
یه کار دیگه هم کردم که بدتر شد گفتم اگه زمان تموم شده یه dialog نشون بده که error میده چون اکیتویتی دیگه dialog نداره
امید وارم متوجه شده باشید
******شفاف سازی:یه ترد تو یه اکتویتی(اکتیوتی اول ) استارت میشه تا 60 ثانیه بشماره مثل آموزش counter بعد که این 60 ثانیه تموم شد یه پیامی رو نشون بده. حالا اگه تو این 60 ثانیه (مثلا ثانیه 40)فرد با دکمه back یا هر دکمه ای از (اکتیوتی اول )خارج شد میخوا م دیگه اون پیام نشان داه نشه ولی میشه*****
هنگامی که میخواید با intent به اکتیویتی دیگه برید ، thread رو stop کنید :)
ویرایش
اینم سورس ، واسه دوستانی که حالشو ندارن یه سرچ کوچیک تو گوگل بزنن !
Thread thread = new Thread(new Runnable() {
public void run() {
}
});
Boolean ActivityChanged = true;
thread.start();
if (ActivityChanged)
{
thread.stop();
}
ویرایش 2 : تو استک اینو پیدا کردم ، میگه stop کردن روش مناسبی نیست
//NOTE : the method Thread.stop() is deprecated
//EDIT : : try this
public void stopThread(){ if(myService.getThread()!=null){ myService.getThread().interrupt(); myService.setThread(null); } }
نکته : میتوانید از thread.inerrupt() یا Thread=null استفاده کنید
برگرفته از همون لینک stack over flow
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .