خُب الان کجاش شما یه مقدار رو از ترد return کردی ؟ شما اومدی چندین متد رو تو هم صدا کردی برای اینکه یه مقدار رو از ترد خارج کنی .در ضمن این روش استفاده خیلی خشک هست ینی اگر شما چندین متد مختلف داشته باشید نمیتونید با این روش پیاده سازیش کنید . بهترین راه استفاده از لیسنر هست که استاد هم در آموزش هاشون یاد دادن .
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
آیا یک Thread میتواند خروجی (مثلا String ) داشته باشد؟
مدیریت گفتگو
آخرین تغییر: 12 سال پیش
سلام.توی آموزشهای استاد در مورد Threading (تا اونجایی که من نگاه کردم) همه Thread ها از نوع Runnable و بدون خروجی بودند.
میخواستم بدونم که آیا امکانش هست که یک Thread خروجی داشته باشه؟ مثلا یک مقدار String رو برگردونه.
میدونم توی ابزار AsyncTask این امکان وجود داره اما به دلایلی که من نمیدونم استاد استفاده از این ابزار رو توصیه نمیکنه و Thread رو ترجیح میده.
از راهنمایی اساتید و دوستان ممنونم.
پاسخها 1
نمیدونم منظور شما دقیقا همین هست یا نه ولی فعلا این کد دم دستم بود.
import android.os.Handler;
publicclassMindextends V {
publicstaticHandler handler1 =newHandler();
@Override
protectedvoid onCreate(android.os.Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mydate =""+ year +"/"+ mon +"/"+ day +""+ hor +":ساعت";
Thread hour =newThread(newRunnable(){
@Override
publicvoid run(){
do{
try{
Thread.sleep(60*1000);
handlerpostmind();
}
catch(InterruptedException e){
e.printStackTrace();
}
}
while(true);
}
});
hour.start();
};
publicvoid handlerpostmind(){
Mind.handler1.post(newRunnable(){
@Override
publicvoid run(){
getdaramad();
}
});
}
publicvoid getdaramad(){
if(hor <=24){
hor +=1;
}
if(hor >=24){
day = day +1;
hor =1;
}
if(day >=30){
mon = mon +1;
day =1;
}
if(mon >=12){
year = year +1;
mon =1;
}
mydate =""+ year +"/"+ mon +"/"+ day +""+ hor +"ساعت";
}
}
نظرات
الان به کد اصلی دسترسی ندارم ولی به زودی براتون درج میکنم.حرف شما صحیح.استفاده از لیسنر هم روش خوبیه ولی یادتون نره برنامه نویسی یک چیز ثابت نیست شاید بعضی روش ها روش خیلی خوبی نباشه ولی خیلی وقتا خیلی راحت تر مشکل رو حل میکنه.
حرف شما هم متین هست ولی الان این روش آیا یک روش راحت هست ؟ ایجاد چندین متد برای خارج کردن یک مقدار صحیح هست ؟ شما فرض کنید برای اتصال به سرور 20 نوع متد مختلف دارید آیا با این روش میشه خروجی مناسب با کمترین کد نویسی رو داشت . الان شما داخل اکتیویتی ظاهرا اومدین و ترد رو اجرا کردید ، اگر ترد خارج از کلاس اکتیویتی و به صورت مستقل باشه جواب میده ؟ اینا سوالاتی هست که باید بررسی کنید و با توجه به این قضیه شما یک متد خوب ، تمیز و با کارایی بالا بنویسید. شاید در پروژه های معمولی جواب بده ولی در پروژه های سنگین حتما به مشکل برمیخورید تمام عرایض بنده جهت راهنمایی هست .
دوست عزیز نگفتم که این روش روش خوبیه.اتفاقا این thread خارج از کلاس اکتیویتی اصلی هست.تمام حرف شما صحیح تو پروژه های سنگین جای برنامه نویسی حرفه ای و ایده عاله نه جای جای هر کد زنیه غیر منطقی.واقعا ممنون که وقت گذاشتی خیلی استفاده کردم.بازم ممنون.
خوب من عادت دارم از کوچیک ترین پروژه تا پروژه بزرگ و پیچیده رو با بهترین روش ها پیاده سازی کنم .
کار درستو شما انجام میدین.من تو دبیرستان به دلیل بی تجربگی زیاد از روش های خیلی منطقی استفاده نمیکردم.بعضی برنامه هامم یجورایی بعضی کداشو با کلک مینوشتم ولی الان یک ساله دارم سعیمو میکنم تا اونجا که ممکنه از بهترین روش تو برنامه هام استفاده کنم.
خیلی خوبه چون هر چی تمیز تر بنویسید خودتون راحت ترید ، امیدوارم موفق باشید
لطف دارید.همچنین.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات