অ্যান্ড্রয়েড টাস্ক অ্যাফিনিটি ব্যাখ্যা


104

বৈশিষ্ট্যটি ঠিক কী taskAffinityজন্য ব্যবহৃত হয়? আমি ডকুমেন্টেশন দিয়েছি কিন্তু আমি কিছুই বুঝতে পারি না।

কেউ কি সাধারণ ব্যক্তির পদে টাস্ক অ্যাফিনিটি ব্যাখ্যা করতে পারেন?


1
এখানে উদাহরণ খুব ভাল ব্যাখ্যা slideshare.net/RanNachmany/...
user1269737

আমি মনে করি এই উত্তরটি সবচেয়ে ভাল: স্ট্যাকওভারফ্লো.com
প্রতীক বুটানি

উত্তর:


160

অ্যান্ড্রয়েড টাস্ক অ্যাফিনিটি কি জন্য ব্যবহার করা হয়?

একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনটিতে এমন ক্রিয়াকলাপ রয়েছে যা কার্ডের ডেকের মতো স্ট্যাক তৈরি করে। আপনি যদি অ্যান্ড্রয়েড অ্যাপ্লিকেশন শুরু করেন এবং এ, বি, সি, ডি, ই পাঁচটি ক্রিয়াকলাপ শুরু করেন। তারা একটি স্ট্যাক গঠন করবে

E   - chat view
D   - weather screen
C   - map view
B   - weather screen
A   - login screen

E সর্বশেষ ক্রিয়াকলাপ শুরু হয়েছিল এবং এটি প্রদর্শিত হচ্ছে। আপনি যদি ই বন্ধ করেন, ডি প্রদর্শিত হবে। আপনি ডি বন্ধ করলে সি প্রদর্শিত হবে। প্রভৃতি

লক্ষ্য করুন যে ক্রিয়াকলাপ Bএবং Dএকই ক্রিয়াকলাপ। ব্যবহারকারী যদি কিছু পরিবর্তন করে D weather screenএবং তারপর কার্যকলাপটি বন্ধ করার সিদ্ধান্ত নিয়ে থাকে তবে কী বন্ধ করবেন C Map view?

তারপরে ব্যবহারকারী আবহাওয়ার স্ক্রিনে ফিরে আসবে এবং ব্যবহারকারী অসন্তুষ্ট হবে কারণ স্তরে D weather screenকরা পরিবর্তনগুলি স্তরে সংরক্ষণ করা হয়নি B weather screen। যদিও এটি একই ক্রিয়াকলাপ, এটি সেই ক্রিয়াকলাপের আলাদা স্টেট।

ব্যবহারকারীর 5 স্তরের ক্রিয়াকলাপ ছিল এবং তাদের মধ্যে দুটি একই ক্রিয়াকলাপ ছিল। সমস্ত 5 স্ট্যাকের বাইরে পপিং এমন ঘটনা তৈরি করবে যেখানে আপনি একই ক্রিয়াকলাপের দুটি ভিন্ন সংস্করণের সাথে ইন্টারঅ্যাক্ট করবেন এবং বেশ বিভ্রান্তিকর হতে পারেন।

ব্যবহারকারীরা সাধারণত ক্রিয়াকলাপের কঠোর স্ট্যাকের বিবেচনা করে ভাবেন না। তাদের ধারণা: "ওহ আবহাওয়ার দৃশ্যে আমি সেখানে পরিবর্তন করব" এবং তারপরে তারা মানচিত্রের দৃশ্যে ফিরে যেতে চায়। তারপরে আবার ব্যাক আপ করুন কারণ তারা আবার লগইন স্ক্রিনে যেতে চান। কেন B weather appদেখাচ্ছে এবং কেন সেটি স্তর থেকে সেটিংস সংরক্ষণ করে নি D?

প্রোগ্রামার যদি ক্রিয়াকলাপ কিছু বিভ্রান্তির উপশম করতে সক্ষম হতে পারেন Bএবং Dরাজ্যের লিঙ্ক করা হয়েছে। এই ভাবে একের সাথে অন্যের পরিবর্তন হয়। প্রতিবার ব্যবহারকারী একটি নতুন আবহাওয়ার স্ক্রিন খুললে, এটি গোপনে আবহাওয়ার পর্দার একক দৃষ্টিকোণটি খোলে।

এই পরিস্থিতিতে, ক্রিয়াকলাপের কার্যকারিতা কার্যকারিতা পরিবর্তন করা বাঞ্ছনীয়। ব্যবহারকারীর স্তর ডি স্তর পরিবর্তন হবে এবং তারপরে বি স্তরে ফিরে যান এবং ডি তে করা বি পরিবর্তনগুলি দেখুন would

প্রোগ্রামটি আপনাকে একটি স্ট্যাক রাখে যার মাধ্যমে আপনি ব্যাকআপ নিতে পারেন, যা দুর্দান্ত and

আরও ব্যাখ্যা সহ স্লাইডশো: http://www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack


13
কীভাবে ব্যবহার না করে singleInstanceপরিবর্তে ব্যবহার করবেন taskAffinity?
hguser

5
উপরে বর্ণিত ক্ষেত্রে, আমি ইনটেন্টকে কল করা ক্রিয়াকলাপ ডি তে ফ্ল্যাগ_এসিটিআইভিটি_অর্ডারফুআরন্টটি ব্যবহার করতে পছন্দ করব, এটি অন্য সমস্তের উপরে ক্রিয়াকলাপ বি এনে দেবে এবং এর একটি মাত্র উদাহরণ
রাখবে

63
প্রকৃতপক্ষে, এই উত্তরটি খুব কমই স্পর্শ করে taskAffinity:-( ব্যাখ্যাটি অস্পষ্ট। বিস্ময়কর যে এইগুলির উত্তরগুলি এতগুলি উত্সাহ পেয়েছে
ডেভিড ওয়াসার

5
এত দীর্ঘ উত্তর কিন্তু তবুও সরল সত্যটি উল্লেখ করা হয়নি: taskAffinityক্রিয়াকলাপটি চালানো পছন্দ করে এমন কাজের নাম নির্দিষ্ট করতে ব্যবহৃত হয় an যখন একটি Intentপতাকা থাকে FLAG_ACTIVITY_NEW_TASK, তখন ক্রিয়াকলাপটি এই নির্দিষ্ট টাস্কে রাখা হয় (দ্বারা সংজ্ঞায়িত taskAffinity)।
স্ট্যান মট

2
Although it's the same activity, it's a different STATE of that activity.আমি বলব, "এটি সেই ক্রিয়াকলাপের আর একটি উদাহরণ ।"
মাকসিম দিমিত্রিভ

6

সত্তাটি নির্দেশ করে যে কোনও ক্রিয়াকলাপটি কোন কাজের সাথে সম্পর্কিত হতে পছন্দ করে।

সম্পর্ক দুটি পরিস্থিতিতে কার্যকর হয়:

যখন কোনও ক্রিয়াকলাপ সূচনা করে এমন অভিপ্রায়টিতে FLAG_ACTIVITY_NEW_TASK পতাকা থাকে।

যখন কোনও ক্রিয়াকলাপের তার অনুমতিপ্রাপ্ত টাস্করপিয়েন্টিং বৈশিষ্ট্যটি "সত্য" এ সেট থাকে।

দয়া করে http://developer.android.com/guide/components/tasks-and-back-stack.html দেখুন


26
বিকাশকারী.অ্যান্ড্রয়েড.কম
অনির্বাণ

এটি কিছুই ব্যাখ্যা করে। অনুশীলনে এর অর্থ কী?
জেমস অ্যান্ড্রুজ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.