بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
سوال : اجرا نشدن یک کلاس استاتیک به همراه تابع در ترد(حل شد)
سلام خدمت شما دوستان بنده یک کلاس دارم که به صورت استاتیکه و درون اون یک تابع دارم حالا وقتی می خوام این تابع رو داخل یک کلاس دیگه و از طریق ترد اجرا کنم کلا کلاس استاتیک عمل نمیکنه
Thread closeActivity = new Thread(new Runnable() {
@Override
public void run() {
try {
CheckActive.CheckActiveApp(); // این کلاس فراخوانی شده کار نمی کند در ترد
if(StructActive.state == true) {
Intent GoActive = new Intent(Faalsazi.this,Update.class);
startActivity(GoActive);
finish();
}
else if (StructActive.state == false){
ussd2.setText("فعال سازی برنامه با مشکل رو به رو شده است");
ussd2.setTextColor(Color.RED);
Thread.sleep(2000);
Intent GoActive = new Intent(Faalsazi.this,Update.class);
startActivity(GoActive);
finish();
}
} catch (Exception e) {
e.getLocalizedMessage();
}
}
});
closeActivity.start();
0
0
دوستان کسی هست به این مشکل برخورده باشه ؟ (11 سال پیش)
+1
0
مورد اول این که "این کلاس فراخوانی شده کار نمی کند در ترد" یا "این متد فراخوانی شده کار نمی کند در ترد"؟ مورد دوم این که نیاز نیست کلاس استاتیک باشه ،مهم اینه که متد مورد نظر Public باشه (حالا بر حسب نیازتون میتونه Static هم باشه). مورد سوم این که چون کد مورد نظر که بهش اشاره کردید رو در try گذاشتید ممکنه که Exeption رخ میده و شما هم متوجه نمیشید و فکر میکنید که کد اجرا نمیشه(البته ممکنه مشکل چیز دیگه ای باشه) (11 سال پیش)
+1
0
کد نیاز به handler داره و چون شما کدو داخل try نوشتید برنامه خطا نمیده. (11 سال پیش)
0
0
خب چطور Handler به این کد اضافه کنم ممنون میشم راهنمایی بفرمایید (11 سال پیش)
+1
0
تابع تونو باید از try بیرون بیارین بعد بالای try یک هندلر اظافه کنید و سپس کدتونو داخل هندلر ببرین. (11 سال پیش)
0
0
متاسفانه handler و کارشو درک نمی کنم اگر لطف کنید به عنوان پاسخ کد رو ویرایش کنید ممنون میشم (11 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
ATRAS
11 سال پیش
+2
0
Thread closeActivity =newThread(newRunnable(){
@Override
publicvoid run(){
handler.post(new Runnable() {
@Override
public void run() {
CheckActive.CheckActiveApp(); //***
}
});
}
try{
//***
if(StructActive.state ==true){
IntentGoActive=newIntent(Faalsazi.this,Update.class);
startActivity(GoActive);
finish();
}
elseif(StructActive.state ==false){
ussd2.setText("فعال سازی برنامه با مشکل رو به رو شده است");
ussd2.setTextColor(Color.RED);
Thread.sleep(2000);
IntentGoActive=newIntent(Faalsazi.this,Update.class);
startActivity(GoActive);
finish();
}
}catch(Exception e){
e.getLocalizedMessage();
}
}
});
closeActivity.start();
و هندلر رو هم در ابتدای صفحه به این صورت تعریف کنید.
public Handler handler=new Handler();
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .