আপনি যখন সরাসরি আপনার অ্যাপ্লিকেশনটি হোম স্ক্রীন থেকে লঞ্চ করেন বনাম যখন আপনার অ্যাপ্লিকেশনটি ভাগ করে নেওয়ার উদ্দেশ্যে অন্য অ্যাপ থেকে লঞ্চ করা হয় তখন আপনি দুটি প্রসঙ্গের মধ্যে পার্থক্য দেখতে পাবেন।
@ কমন্সেন্সকোড দ্বারা উল্লিখিত "নন-স্ট্যান্ডার্ড ব্যাক স্ট্যাক আচরণ" এর একটি ব্যবহারিক উদাহরণ এখানে:
মনে করুন যে আপনার কাছে দুটি অ্যাপ রয়েছে যা একে অপরের সাথে যোগাযোগ করে, অ্যাপ 1 এবং অ্যাপ 2 ।
লঞ্চ অ্যাপ 2: লঞ্চার থেকে মূল কার্যকলাপ। তারপরে মেইনএকটিভিটি লঞ্চ অ্যাপ 2 থেকে: সেকেন্ডারিএটিভিটি । সেখানে, হয় কার্যকলাপের প্রসঙ্গ বা অ্যাপ্লিকেশন প্রসঙ্গ ব্যবহার করে, উভয় ক্রিয়াকলাপ একই টাস্কে থাকে এবং এটি ঠিক আছে (আপনি সমস্ত স্ট্যান্ডার্ড লঞ্চ মোড এবং অভিজাত পতাকা ব্যবহার করেন)। আপনি ব্যাক প্রেসের সাথে মেইনএ্যাকটিভিটিতে ফিরে যেতে পারেন এবং সাম্প্রতিক অ্যাপগুলিতে আপনার কেবল একটি কাজ আছে।
মনে করুন এখন আপনি অ্যাপ 1 এ আছেন এবং অ্যাপ 2 চালু করুন: একটি শেয়ারের অভিপ্রায় (ACTION_SEND বা ACTION_SEND_MULTIPLE) সহ মূল কার্যকলাপ। তারপরে সেখান থেকে অ্যাপ 2 চালু করার চেষ্টা করুন : মাধ্যমিকএকটিভিটি (সর্বদা সমস্ত স্ট্যান্ডার্ড লঞ্চ মোড এবং অভিজাত পতাকা সহ)। যা ঘটে তা হ'ল:
যদি আপনি অ্যাপ 2 চালু করেন: অ্যান্ড্রয়েড <10 এ অ্যাপ্লিকেশন প্রসঙ্গ সহ মাধ্যমিকঅ্যাক্টিভিটি আপনি একই কার্যক্রমে সমস্ত ক্রিয়াকলাপ চালু করতে পারবেন না । আমি অ্যান্ড্রয়েড 7 এবং 8 দিয়ে চেষ্টা করেছি এবং মাধ্যমিকঅ্যাক্টিভিটি সর্বদা একটি নতুন কার্যে চালু করা হয়েছে (আমার ধারণা কারণ অ্যাপ 2: মাধ্যমিকঅ্যাক্টিভিটি অ্যাপ 2 অ্যাপ্লিকেশন প্রসঙ্গে চালু করা হয়েছে তবে আপনি অ্যাপ 1 থেকে এসেছেন এবং আপনি সরাসরি অ্যাপ 2 অ্যাপ্লিকেশন চালু করেননি । হতে পারে হুডের অধীনে অ্যান্ড্রয়েড এটি সনাক্ত করতে পারে এবং FLAG_ACTIVITY_NEW_TASK ব্যবহার করবে)। এটি আপনার প্রয়োজনের উপর নির্ভর করে ভাল বা খারাপ হতে পারে, কারণ আমার অ্যাপ্লিকেশনটি খারাপ ছিল।
অ্যান্ড্রয়েড 10-এ অ্যাপ্লিকেশনটিকে
ক্রিয়াকলাপের সাথে "ক্রিয়াকলাপের প্রেক্ষাপটের বাইরে থেকে কলিং স্টার্টএটিভিটি () বার্তাটি দিয়ে FLAG_ACTIVITY_NEW_TASK পতাকা প্রয়োজন। আপনি কি সত্যিই এটি চান?" ।
সুতরাং এটিকে অ্যান্ড্রয়েড 10 এ কাজ করতে আপনাকে FALG_ACTIVITY_NEW_TASK ব্যবহার করতে হবে এবং আপনি একই কার্যক্রমে সমস্ত ক্রিয়াকলাপ চালাতে পারবেন না।
আপনি দেখতে পাচ্ছেন যে আচরণটি অ্যান্ড্রয়েড সংস্করণগুলির মধ্যে আলাদা, অদ্ভুত।
যদি আপনি অ্যাপ 2 চালু করেন: ক্রিয়াকলাপের প্রসঙ্গে সেকেন্ডারিঅ্যাক্টিভিটি সব ঠিকঠাক হয় এবং আপনি লিনিয়ার ব্যাকস্ট্যাক নেভিগেশনের ফলে একই কার্যক্রমে সমস্ত ক্রিয়াকলাপ চালাতে পারেন।
আমি আশা করি আমি কিছু দরকারী তথ্য যুক্ত করেছি