সুতা
একটি থ্রেড হ'ল মৃত্যুদন্ড কার্যকর করার একত্রে একক এটির নিজস্ব কল স্ট্যাক রয়েছে। অ্যাপ্লিকেশনগুলিতে থ্রেড বাস্তবায়নের জন্য দুটি পদ্ধতি রয়েছে।
একটি নতুন ক্লাস সরবরাহ করছে যা থ্রেড প্রসারিত করে এবং তার রান () পদ্ধতিটি ওভাররাইড করে। অন্যটি তার তৈরির সময় একটি রান্নেবল অবজেক্টের সাথে একটি নতুন থ্রেড ইভেন্ট সরবরাহ করছে। কোনও থ্রেডকে তার "শুরু" পদ্ধতিটি কল করে কার্যকর করা যেতে পারে। কোনও থ্রেডের "সেটপ্রাইরিটি (ইনট)" পদ্ধতিতে কল করে আপনি "অগ্রাধিকার" সেট করতে পারেন।
আপনার যদি ইউআই অংশে কোনও প্রভাব না থাকে তবে একটি থ্রেড ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, আপনি কিছু ওয়েব পরিষেবা কল করছেন বা কিছু ডেটা ডাউনলোড করছেন এবং ডাউনলোডের পরে, আপনি এটি আপনার স্ক্রিনে প্রদর্শন করছেন। তারপরে আপনাকে একটি থ্রেড সহ একটি হ্যান্ডলার ব্যবহার করতে হবে এবং এটি আপনার অ্যাপ্লিকেশনটিকে থ্রেড থেকে সমস্ত প্রতিক্রিয়াগুলি পরিচালনা করতে জটিল করে তুলবে।
একটি হ্যান্ডলার আপনাকে কোনও থ্রেডের মেসেজকুইয়ের সাথে সম্পর্কিত বার্তা এবং চলমানযোগ্য বস্তু প্রেরণ এবং প্রক্রিয়া করার অনুমতি দেয়। প্রতিটি থ্রেডের প্রতিটি বার্তার সারি রয়েছে। (করণীয় তালিকার মতো), এবং থ্রেড প্রতিটি বার্তা গ্রহণ করবে এবং বার্তার সারি খালি না হওয়া পর্যন্ত এটি প্রক্রিয়া করবে। সুতরাং, যখন হ্যান্ডলার যোগাযোগ করে, এটি কেবল কলার থ্রেডকে একটি বার্তা দেয় এবং এটি প্রক্রিয়া করার জন্য অপেক্ষা করবে।
আপনি যদি জাভা থ্রেড ব্যবহার করেন তবে আপনার নিজের কোডে নিম্নলিখিত প্রয়োজনীয়তাগুলি পরিচালনা করতে হবে:
আপনি যদি ইউজার ইন্টারফেসে ফলাফলগুলি আবার পোস্ট করেন তবে মূল থ্রেডের সাথে সিঙ্ক্রোনাইজেশন থ্রেড বাতিল করার জন্য কোনও ডিফল্ট নয় কোনও ডিফল্ট থ্রেড পুলিং অ্যান্ড্রয়েডে কনফিগারেশন পরিবর্তনগুলি পরিচালনা করার জন্য কোনও ডিফল্ট নয়
AsyncTask
অ্যাসিঙ্কটাস্ক ইউআই থ্রেডটির যথাযথ এবং সহজ ব্যবহার সক্ষম করে। এই শ্রেণিটি থ্রেড এবং / অথবা হ্যান্ডলারগুলি পরিচালনা না করে পটভূমি ক্রিয়াকলাপ সম্পাদন করতে এবং ইউআই থ্রেডে ফলাফল প্রকাশের অনুমতি দেয়। একটি অ্যাসিঙ্ক্রোনাস টাস্ক এমন একটি গণনা দ্বারা সংজ্ঞায়িত করা হয় যা একটি পটভূমি থ্রেডে চলে এবং যার ফলাফলটি ইউআই থ্রেডে প্রকাশিত হয়।
অ্যাসিঙ্কটাস্ক নিম্নলিখিত 4 টি ধাপ অতিক্রম করবে:
onPreExecute ()
টাস্কটি কার্যকর হওয়ার আগে ইউআই থ্রেডে অনুরোধ করা হয়েছে
doInbackground (প্যারাম ..)
OnPreExecute () সম্পাদন শেষ করার পরপরই পটভূমির থ্রেডে আমন্ত্রিত।
onProgressUpdate (প্রগতি ..)
প্রোগ্রেস (অগ্রগতি ...) এ কল করার পরে ইউআই থ্রেডে আমন্ত্রণ জানানো হয়েছে।
onPostExecute (ফল)
ব্যাকগ্রাউন্ড গণনা শেষ হওয়ার পরে ইউআই থ্রেডে আমন্ত্রিত।
আপনার AsyncTask ব্যবহার করা উচিত কেন?
কোনও ইউআই থ্রেডের জন্য ব্যবহার করা সহজ। (সুতরাং, যখন কলার থ্রেডটি ইউআই থ্রেড হয় তখন এটি ব্যবহার করুন)।
হ্যান্ডলারদের কারসাজি করার দরকার নেই।