android - সার্ভিস, Async কাজ এবং থ্রেড মধ্যে পার্থক্য?




android-asynctask android-service (4)

এটি আপনার প্রশ্নের জন্য সবচেয়ে সহজ উত্তর

সুতা

মুখ্য থ্রেডে "সমান্তরাল" চালানোর সঞ্চালনের একটি ইউনিট একটি গুরুত্বপূর্ণ বিন্দু, আপনি প্রধান থ্রেড ছাড়া এখানে কোন থ্রেড থেকে UI উপাদান আপডেট করতে পারবেন না।

AsyncTask

একটি বিশেষ থ্রেড, যা আপনাকে UI আপডেট করার জন্য সহায়ক পদ্ধতি দেয় তাই মূলত আপনি UI আপডেট করতে পারেন এমনকি AsyncTask পটভূমি থ্রেডে চালানো হবে। Interprocess যোগাযোগ হ্যান্ডলিং স্পষ্টভাবে করা প্রয়োজন হয় না।

সেবা

উপরের সমস্যার সমাধান করুন কারণ এটি উদ্ঘাটিত কার্যকলাপ থেকে পৃথক থাকে তাই এটি ক্রিয়াকলাপটি ধ্বংস হয়ে যাওয়ার পরেও চলমান থাকতে পারে, এটি প্রধান থ্রেডে (ANR থেকে সতর্ক থাকুন) একটি পটভূমি পরিষেবা ব্যবহার করে (ইন্টেন্ট সার্ভারটিকে স্বয়ংক্রিয়ভাবে কর্মী থ্রেড তৈরি করে) আপনার জন্য)সেবা UI ছাড়া একটি কার্যকলাপের মত , দীর্ঘ কাজ করার জন্য ভাল

পরিষেবা, Async কার্য এবং থ্রেড মধ্যে পার্থক্য কি। আমি ভুল না হলে তাদের সব ব্যাকগ্রাউন্ডে কিছু উপাদান ব্যবহার করা হয়। সুতরাং, কিভাবে সিদ্ধান্ত নিতে হবে এবং কখন?


কিছুদিন আগে কেউ আমাকে কিছু বলতে চেয়েছিলেন আরো কিছু তথ্য:

  • ক্রিয়াকলাপ এবং পরিষেবাদিগুলির মধ্যে - আপনি থ্রেড হিসাবে গ্লোবাল ভেরিয়েবলগুলি ভাগ করতে পারেন।
  • আপনার সমস্ত গ্লোবাল ভেরিয়েবলগুলির সাথে একসঙ্গে আপনার অ্যাপ্লিকেশনটি এখনও পর্যন্ত ক্রিয়াকলাপ বা পরিষেবাটি উপস্থিত থাকা পর্যন্ত মুছে ফেলা হবে না।
  • আপনার যদি আপনার অ্যাপ্লিকেশানে কোনও পরিষেবার একটি উদাহরণ থাকে এবং OS এর সংস্থানগুলি প্রয়োজন হয় তবে এটি প্রথমে আপনার ক্রিয়াকলাপগুলিকে হত্যা করে তবে যতক্ষণ পরিষেবাটি থাকবে, ততক্ষণ OS আপনার গ্লোবাল ভেরিয়েবলগুলির সাথে একত্রিত হবে না।

আমার ব্যবহার কেসটি এরকম: আমার একটি সার্ভারের সাথে সংযুক্ত একটি বিশ্বব্যাপী স্থান এবং একটি ক্রিয়াকলাপ যা ফলাফল দেখায়। ব্যবহারকারী যখন হোম বোতামটি টিপে তখন কার্যকলাপটি পটভূমিতে যায় এবং একটি নতুন পরিষেবা শুরু হয়। এই পরিষেবাটি তখন থ্রেডের ফলাফলগুলি পড়বে এবং প্রয়োজনে বিজ্ঞপ্তি এলাকায় তথ্য প্রদর্শন করবে। আমি আমার ক্রিয়াকলাপটি ধ্বংস করার জন্য OS সম্পর্কে উদ্বিগ্ন নই কারণ আমি জানি যে যতক্ষণ পরিষেবাটি চলছে ততক্ষণ এটি থ্রেডটি ধ্বংস করে।


সেবাটি দীর্ঘ সময় ব্যয়কারী কাজ হিসাবে কার্যকলাপের মতো কিন্তু অ্যাসাইন টাস্ক আমাদের দীর্ঘ / ব্যাকগ্রাউন্ড ক্রিয়াকলাপগুলি সম্পাদন করতে এবং থ্রেডগুলি ম্যানিপুলেট না করেই UI থ্রেডে তার ফলাফল প্রদর্শন করতে দেয়।


বিকাশকারীর দৃষ্টিকোণ থেকে:

থ্রেড : প্রধান থ্রেডে সমান্তরালভাবে কোডগুলিতে সেট চালানোর জন্য ব্যবহৃত হয়। কিন্তু আপনি থ্রেড ভিতরে UI হ্যান্ডেল করতে পারবেন না। এর জন্য আপনাকে Handler ব্যবহার করতে হবে। হাদলার থ্রেডের মতো কাজ করে তবে UI কেও পরিচালনা করতে পারে।

ASyncTask : আপনি যে মুখ্য থ্রেডে কাজ করতে পারবেন না সেগুলি পরিচালনা করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি HTTP অনুরোধটি অত্যন্ত ভারী কাজ যা প্রধান থ্রেডে হ্যান্ডেল করা যায় না, তাই আপনি ASyncTask এ HTTP অনুরোধটি পরিচালনা করেন এটি আপনার মূল থ্রেডের সাথে সমান্তরালভাবে ব্যাকগ্রাউন্ডে কাজ করে। এটির কয়েকটি কলব্যাক পদ্ধতি রয়েছে যা তাদের সংশ্লিষ্ট ঘটনা।

সেবা : একটি ব্যাকগ্রাউন্ড প্রক্রিয়া। এটি এমন কিছু প্রক্রিয়াকরণ করতে হবে যখন এটির সাথে সংশ্লিষ্ট কোন UI নেই।





java-threads