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

غیر فعال کردن یک thread با خارج شدن از Activity

pupil  12 سال پیش  12 سال پیش
0 0

سلام

یک thread مثل همونی که استاد درس داده درست کردم یعنی تو یک class جدید بعد گفتم بعد از چند ثانیه یک پیام بده "وقت تموم" 

اول این پیام toast گذاشتم دیدم با اینکه از Activity خارج میشم بعد از مدتی توی یک اکتیوتی دیگه پیام توست نشون داده میشه

درننتیجه برای نشون ندادش آمدم اون thread تو کلاس  خود اکتویتی نوشتم  تا نشون داده نشه دیدم نمیشه 

از شرط this instance of استفاده امدم بکنم که میگه گویا این شرط تو متد Runnable کار نمیکنه

حالا چیکار کنم تا این پیام توست نشون داده نشه

یه کار دیگه هم کردم که بدتر شد گفتم اگه زمان تموم شده یه dialog نشون بده که error میده  چون اکیتویتی دیگه dialog نداره

امید وارم متوجه شده باشید

******شفاف سازی:یه ترد  تو یه اکتویتی(اکتیوتی اول ) استارت میشه تا 60 ثانیه بشماره مثل آموزش counter بعد که این 60  ثانیه  تموم شد  یه پیامی رو نشون بده. حالا اگه تو این 60 ثانیه (مثلا ثانیه 40)فرد با دکمه back یا هر دکمه ای از (اکتیوتی اول )خارج شد  میخوا م دیگه اون پیام نشان داه نشه ولی میشه*****

0 0
حقیقتش من خیلی نفهمیدم چی شد. (12 سال پیش)
0 0
اگر من درست متوجه شده باشم ، میگن که مثلا یه ترد تو اکتیویتی یک استارد میشه ، ولی وقتی توی اکتیویتی 2 هستیم ، چون به وقفه زمانی رسیده خروجی میده ، در صورتی که میخوان اگر توی اکتیویتی اول جوابی نگرفتن ترد متوقف بشه (12 سال پیش)
0 0
سوالو کمی درست کردم امیدوارم متوجه شده باشید (12 سال پیش)
0 0
با گزینه thread.stop نمیشه کاری کرد و باعث کرش میشه (12 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
+1 0

هنگامی که میخواید با 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

0 0
راه حل شمارو هنوز استفاده نکردم یعنی thread.stop کنم دکمه back باید براش کد بنویسم امتحان میکنم تا دوروز دیگه مرسی دوست عزیز (12 سال پیش)
0 0
راستش خیلی از سوالمو یا از کتاب پیدا میکنم یا stackover ولی اونایی که نمیدوم یا نمیفهم اینجا میگم تا دوروز نمیتونم از کد شما اسفاده کنم فقط الان ActivityChanged یه متغیر ؟؟بعد چطور بفهمه من از اکتیوتی رفتم بیرون (12 سال پیش)
0 0
این یه نمونه کد بود ، منظورم این بود که میشه از این روش هم استفاده کرد ، ولی راه حل شما اینه که مثلا هر جا intent ساختی که بره صفحه بعد thread.stop اجرا بشه (12 سال پیش)

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