بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

Stop کردن thread

مدیریت گفتگو
MyNewName 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام

با دستور زیر به تمام thread ها دسترسی پیدا کردم

اما نمی دونم چطور میشه stop کردشون

ممنون میشم راهنمایی کنید

for (Thread t: Thread.getAllStackTraces().keySet()) {
            if (t.getState() == Thread.State.RUNNABLE) {
                // code for stop
            }
        }

نظرات

Leon 11 سال پیش
خب جای کد اینو بذارید شاید شد : thread.interrupt
atf 11 سال پیش
منم همین مشکل رو دارم از thread.interrupt هم استفاده کردم درست نشد
MyNewName 11 سال پیش
نه تمام این کدها رو کامل تست کردم هیچ کدوم نشد
ameriasl 11 سال پیش
سلام فکر کنم دربخش آموزشهای رایگان در قسمت listView طریقه stop thread گفته شده
ameriasl 11 سال پیش
سلام فکر کنم دربخش آموزشهای رایگان در قسمت listView طریقه stop thread گفته شده
atf 11 سال پیش
ما همچنان منتظر جواب هستیم دوستان
MyNewName 11 سال پیش
کسی هست کمک کنه؟
آس 11 سال پیش
thread.stop() رو امتحان کردین ؟
آس 11 سال پیش
thread.stop() رو امتحان کردین ؟ بله خب با تشکر اسپم شد نظرم و الان صرفا دارم جملمو طولانی میکنم تا اسپم نشه :-)
MyNewName 11 سال پیش
این دستور حذف شده و نوشتن که نباید استفاده بشه
raeesi 11 سال پیش
من از این کد استفاده میکنم ولی کل اکتیویتی رو می بنده وترد ها رو هم غیر فعال میکنه: System.exit(0);

پاسخ‌ها 2

saeed_435 11 سال پیش

دو متد زیر رو به کلاس thread اضافه کنید

   @Override
public void start() {
blinker = new Thread(this);
blinker.start();
}


public static void stopForce() {
blinker = null;
}

و شرط اجرای thread رو به شرط زیر تغییر بدید:

    while (Thread.currentThread() == blinker) 

در اینصورت با هربار اجرای تابع stopForce ،ترد متوقف میشه.

نظرات

atf 11 سال پیش

 Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
while (true) {
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
isLighOn = true;
Thread.sleep(30);
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
isLighOn = false;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
thread.start();

 

 این کل thread منه کجا باید اون دو کلاس رو اضافه کنم 

ممنون

نظرات

saeed_435 11 سال پیش
سلام آموزش counter استادو یه بار دیگه مشاهده گنین،یه کلاس ساختن که از thread ، اکستندز شده،شما دو متد بالا رو در اون کلاس قرار بدید و شرط while رو برابر شرطی که بالا گذاشتم بذارید. تو کدتون هرجا خواستن ترد متوقف شه از stopForce استفاده کنید تا ترد استاپ شه.

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