آموزش و دوره های رایگان برنامه نویسی( طراحی وب و اندروید) سایتاپ سئو

در سایتاپ با آموزش های اندروید،asp.et MVC و همچنین SEO و بهینه سازی وب با همراه باشید.همچنین با اخبار روز در زمینه های امنیت و هک و اخبار روز تکنولوژی را در سایت ما میتوانید بخوانید.


معرفی جامع کلاس AsynkTask و کاربرد آن

سایتاپ سئو

کلاس  AsyncTask  در اندروید یک کلاس بسیار کاربردی و مهم است.بسیاری از اکتیویتی های سنگین در نوشتن اپ های اندروید،با مشتق گیری از کلاس AsyncTask   ساخته میشوند.در یک کلام این کلاس باعث میشود که شما کارها و کوئری های سنگیتان را به صورتی که برنامه هنگ کند،اجرا کنید.

اندروید یک ترد Thread  اصلی دارد که برای رابط کاربری UI  استفاده میشود.به این ترد،Main Thread  یا ترد اصلی میگویند.این ترد اصلی عملیات های ورودی را میگیرد و یک به یک انجام میدهد ولی نمیتواند چند عملیات را به صورت همزمان انجام دهد.

برای انجام چند عملیات همزمان که معمولا عملیات های بسیار سنگینی هم میشوند،اندروید یک کلاس به نام AsyncTask   دارد و توصیه شده برای انجام عملیات های سنگین از این کلاس استفاده شود.

در این قسمت صرفا به کاربرد کلاس AsyncTask   و توضیحات در این باره میپردازیم و در قسمت بعدی که لینکش در انتهای پست گذاشته شده است به آموزش AsyncTask  درقالب یک پروژه کوچک میپردازیم تا مطلب به خوبی برایتان جا بیوفتد.

کلاس AsyncTask  را به صورت زیر میسازیم:

 

  private class YourNameClass extends AsyncTask< String, Integer, String>{

}

 

متد های اصلی درون کلاس AsyncTask

 

کلاس AsyncTask  دارای سه متد اصلی به نام های

onPreExecute

doInBackground

onProgressUpdate

onPostExecute

میباشد که این متد ها را باید درون کلاس مشتق شده از AsyncTask  قرار دهیم.

 

متد doInBackground در کلاس AsyncTask چه کاربردی دارد؟

@Override

        protected String doInBackground(String... strings) {

            return null;

        }

    }

 

در متد دومی باید اعمال اصلی مان که میخواهیم در بک گراند انجام شود ،نوشته میشود که معمولا کار های سنگین و کوئری های زمان برمان در این متد جای میگیرد تا برنامه هنگام اجرا برای کاربر هنگ نکند.

نکته بسیار بسیار مهم: در متد doInBackground نباید با UI ارتباط برقرار کرد!  چرا که UI  در ترد اصلی برنامه انجام میشود ولی متد doInBackground در یک ترد دیگر.برای ارتباط با  UI  باید از دیگر متد های برنامه استفاده کنیم.

 

متد onPreExecute در کلاس AsyncTask چه کاربردی دارد؟

 

  @Override

        protected void onPreExecute() {

            super.onPreExecute();

        }

 

در این متد ،برنامه نویس باید کدها  و اعمالی که میخواهد قبل از شروع متد اصلی کلاس  AsyncTask یعنی متد  doInBackground اجرا شود،را درون این متد بگذارد.این متد ،اولین متدی است که در کلاس AsyncTask اجرا میشود.

 

 

 

متد onPostExecute در کلاس AsyncTask چه کاربردی دارد؟

        @Override

        protected void onPostExecute(String s) {

            super.onPostExecute(s);

        }

 

این متد بر خلاف متد بالا،کد ها و دستوراتی که درونش مینویسیم را در آخر کار ،یعنی بعد از متد doInBackground

 اجرا میکند و معمولا برای نشان دادن خروجی و یا اینکه کار با موفقیت انجام شده یا خیر،از این متد استفاده میکنیم.

 

متد onProgressUpdate در کلاس AsyncTask چه کاربردی دارد؟

 


        @Override

        protected void onProgressUpdate(Integer... values) {

            super.onProgressUpdate(values);

        }

 

این متد نیز یک متد خوب برای داشتن تجربه کاربری هر چه بهتر برای کاربر است.وجود سه متد بالا در کلاس AsyncTask

 اجباری است ولی وجود این متد اختیاریست.در این متد ما درصد انجام کارهایی که در متد doInBackground

 انجام شده است را میگیریم و آن را میتوانیم به کاربر  نشان دهیم تا کاربر متوجه شود که اعمالی در حال انجام است و آن اعمال چقدر طول میکشد.

 

خوب در این قسمت با کاربرد و متد های درون کلاس AsyncTask  آشنا شدیم.در پستی که به زودی قرار میدهیم با مثالی عملی،با این کلاس بیشتر و عمیق تر آشنا میشویم.

امبدواریم این مقاله از سایت آپ نیز مفید واقع شده باشد.

 

 

 

 

 

 

 

دسته بندی
android
سایت آپ

برگشت به صفحه اصلی

سایتاپ درباره ما

#به نام یکتا برنامه نویس هستی


تلگرام من

alitaheri_4

بنده علی طاهری دانشجوی رشته نرم افزار و علاقه مند به برنامه نویسی هستم.اولین بار در 14 سالگی با وبلاگ نویسی پا در عرصه وب و سئو گذاشتم.در حال حاضر در برنامه نویسی اندروید با زبان جاوا و تحت وب با asp.net فعالیت دارم.همچنین بسیار علاقه مند به سئو هستم.