আপনি সাম্প্রতিক অ্যাপ্লিকেশন তালিকা থেকে কোনও অ্যাপ সোয়াইপ করলে আসলে কী ঘটে?


147

আইসক্রিম স্যান্ডউইচের সাম্প্রতিক অ্যাপ্লিকেশন তালিকায় অ্যাপ্লিকেশনগুলিকে তালিকা থেকে স্যুইপ করার ক্ষমতা যুক্ত করা হয়েছে, এর ফলে এগুলি স্থায়ীভাবে বরখাস্ত করা হবে (এবং যতদূর আমি জানি এটি একটি ভিনিলা ফাংশন, কোনও সিএম / কাস্টম রম নয়)। ডকুমেন্টেশন এবং প্ল্যাটফর্মের হাইলাইটগুলি এই কার্যকারিতাটির নীচে হুডের কাজগুলি কভার করে না, তবে সিস্টেমটি আসলে কী করছে তা জানতে আগ্রহী ious

আমার কৌতূহলকে আরও যুক্ত করে, আমি দ্রুত পরীক্ষা করার সিদ্ধান্ত নিয়েছি: আমি একটি সিএম 9 ইনস্টল করে সংগীত শুরু করেছি, তারপরে ব্যাকআপ আছি। আমি তখন সাম্প্রতিক অ্যাপ্লিকেশনগুলির তালিকাটি পরীক্ষা করে দেখেছি এটি অবশ্যই সেখানে ছিল (এবং থাম্বনেইলের উপর ভিত্তি করে যথাযথ অবস্থায়)। এরপরে আমি Settings->Applicationsজোর করে মিউজিক অ্যাপটি বন্ধ করে দিয়েছিলাম, তবে এটি এখনও সাম্প্রতিক তালিকায় তালিকাভুক্ত হয়েছিল, এটি আমাকে বিশ্বাস করতে পরিচালিত করে যে এটি ব্যাকগ্রাউন্ডে দীর্ঘায়িত প্রক্রিয়াগুলির সাথে সংযুক্ত নয়।

সংগীত একটি দুর্বল পছন্দ হতে পারে তা বুঝতে পেরে আমি ইউএসএ টুডে অ্যাপ্লিকেশনটিও পরীক্ষা করেছি। এটি মূলত একই আচরণের প্রদর্শন করেছিল এবং দেখে মনে হয়েছিল যে ফোর্স স্টপ করার পরে এটি "পুনরায় চালু" করতে বাধ্য হয়েছিল (যা বোঝায়) যদিও সাম্প্রতিক অ্যাপ্লিকেশন তালিকার থাম্বনেইল এটি প্রতিফলিত হয়নি (ক্যাশেড, আমি অনুমান করছি?)।

সুতরাং, আপনি সাম্প্রতিক তালিকার বাইরে কোনও অ্যাপ্লিকেশন সোয়াইপ করলে ওএস স্তরে আসলে কী ঘটে? এটি কি অ্যাপের ডেটা র‌্যামের বাইরে পরিষ্কার করে এবং আবর্জনা সংগ্রহ করে, তার সংরক্ষণকৃত অবস্থাটি নষ্ট করে?

উত্তর:


68

সাম্প্রতিক অ্যাপ্লিকেশন তালিকার বাইরে অ্যাপ্লিকেশন স্যুইপ করা ভ্যানিলা, এবং হ্যাঁ, ভাল নথিভুক্ত নয়। এটি বিভিন্ন অ্যান্ড্রয়েড ফোরামে শালীন পরিমাণ আলোচনার বিষয় হয়ে দাঁড়িয়েছে ... comments কমত্যটি এখানে কয়েকটি মন্তব্যে সর্বোত্তমভাবে বর্ণিত বলে মনে হচ্ছে : আচরণটি কোনও অ্যাপ্লিকেশন বন্ধ করার মতোই তবে একইরকম - সাধারণভাবে ( অ্যাপ্লিকেশনগুলিতে যেগুলি স্পষ্ট করে ব্যাক বোতাম হ্যান্ডলিং সংজ্ঞায়িত করে না) আপনি যে অ্যাপ্লিকেশনটি থেকে বেরিয়ে আসেন সেটি হ'ল এটি একই জিনিস within

লিঙ্কটিতে নির্দিষ্টকরণের বিষয়ে আরও কিছু বিশদ রয়েছে তবে সামগ্রিকভাবে আপনি এটিকে অ্যাপ্লিকেশনটি ছাড়ার মতো ভাবতে পারেন।

সংগীত অ্যাপ্লিকেশনটির জন্য নির্দিষ্ট, আমি বিশ্বাস করি এটি একটি পরিষেবা শুরু করে, তাই যখন টাস্কটি নিজেই (মিউজিক অ্যাপ / ইউআই) বন্ধ হয়ে যেতে পারে, পরিষেবাটি ব্যাকগ্রাউন্ডে চলতে থাকবে যাতে আপনার সঙ্গীতটি হঠাৎ বন্ধ হয়ে না যায় কেবল কারণ মেমরি পরিচালনার কারণে সাফ হয়ে গেছে। এটি আপনি যা দেখেছেন তাতে প্রভাবিত হতে পারে।


1
ধন্যবাদ, এই লিঙ্কটিতে অনেক ভাল আলোচনা হয়েছে। আপনি হয়ত ঠিক বলেছেন: সংগীত, এটি একটি খারাপ পরীক্ষা হতে পারে। আমি অন্য অ্যাপ্লিকেশন চেষ্টা করব, কেবল লাথি জন্য।
বুধবারের

2
এগিয়ে যান এবং যেহেতু ক্রেতা আলোচনা আমাকে কিছু ভাল খঁোজা এটি সাহায্য করল; দায়ানি Hackborn দ্বারা কিছু পোস্ট যা আমি উল্লেখ দ্বারা প্রতিপন্ন করা লাগে এই গ্রহণ করতে যাওয়া আমার উত্তর । ধন্যবাদ!
ওনাররেথিস


1
নিখুঁত আপনাকে ধন্যবাদ! আমার জন্য এই পোস্টটি আমাকে সহায়তা করেছে: reddit.com/r/Android/comments/mpevh/…
বরিস স্ট্রান্ডজেভ

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

78

আমি মনে করি যাদুকরী অনুসন্ধানের শব্দগুলি খুঁজে পেয়েছি যা গুগল কর্মীদের কাছ থেকে কিছু ব্যাখ্যা পেয়েছিল। বিশেষত, আমি কয়েকটি আলাদা জায়গা পেয়েছি যেখানে ডায়ান হ্যাকবোন ব্যাখ্যা করে যখন আপনি সাম্প্রতিক তালিকা থেকে কিছু সরিয়ে ফেললে কী ঘটে happens প্রথমটি তার একটি Google+ পোস্টে একটি মন্তব্য :

[ডাব্লু] টুপিটি বিশেষত ঘটে যখন আপনি সাম্প্রতিক কোনও কাজটি স্যুইপ করেন তা হ'ল: (1) অ্যাপ্লিকেশনটির কোনও পটভূমি বা খালি প্রক্রিয়াগুলি মেরে ফেলে (দেখুন http://developer.android.com/guide/topics/fundamentals/processes-and- থ্রেডস এইচটিএমএল # এর অর্থ কীসের জন্য লাইফসাইকেল ) এবং (২) যে কোনও কিছু বলতে নতুন http://developer.android.com/references/android/app/Service.html#onTaskRemoved(android.content.Inttent) API ব্যবহার করে কার্য সম্পর্কিত অ্যাপ্লিকেশনগুলির পরিষেবাগুলি সরানো হচ্ছে যাতে এটি উপযুক্ত মনে করে যা করতে পারে।

তিনি একটি ব্লগ মন্তব্যে নোট করেছেন :

প্রকৃতপক্ষে, সাম্প্রতিক কার্যগুলিতে একটি এন্ট্রি অপসারণ প্রক্রিয়াটির জন্য বিদ্যমান যে কোনও পটভূমি প্রক্রিয়াগুলিকে হত্যা করবে। এটি সরাসরি পরিষেবাগুলিকে থামতে বাধ্য করবে না, তবে তাদের জন্য একটি এপিআই রয়েছে তা নির্ধারণের জন্য টাস্কটি সরিয়ে ফেলা হয়েছে কিনা তা তারা বোঝাতে চেয়েছিলেন যে তাদের এই থামানো উচিত। এটি এমন যে মুছে ফেলার কথা বলে যে কোনও ইমেল অ্যাপ্লিকেশনটির সাম্প্রতিক কাজ এটি ইমেলটির জন্য চেক করা বন্ধ করবে না।

আপনি যদি সত্যিই কোনও অ্যাপ্লিকেশনটিকে পুরোপুরি বন্ধ করতে চান তবে আপনি অ্যাপের তথ্যগুলিতে যেতে সাম্প্রতিক কাজগুলিতে দীর্ঘক্ষণ টিপতে পারেন এবং সেখানে জোর করে থামাতে পারেন। থামার জন্য অ্যাপ্লিকেশনটির সম্পূর্ণ কিল - সমস্ত প্রক্রিয়া মারা যায়, সমস্ত পরিষেবা বন্ধ হয়ে যায়, সমস্ত বিজ্ঞপ্তি সরিয়ে ফেলা হয়, সমস্ত অ্যালার্ম সরানো হয় ইত্যাদি স্পষ্টভাবে অনুরোধ না করা পর্যন্ত অ্যাপ্লিকেশনটিকে আবার লঞ্চ করার অনুমতি নেই।

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


এটি অবশ্যই অত্যন্ত স্পষ্ট আচরণ, অত্যন্ত আকর্ষণীয়!
ম্যাথু

"প্রক্রিয়াটির জন্য বিদ্যমান যে কোনও পটভূমি প্রক্রিয়াগুলি মেরে ফেলুন services এটি সরাসরি পরিষেবাগুলিকে থামিয়ে দেবে না"। এটা কি এখনও সত্য? আমি গতকাল একটি পরীক্ষা চালিয়েছি। গতকাল, আমি মূল প্রক্রিয়াটিতে একটি পটভূমি পরিষেবা সহ একটি অ্যাপ সরিয়ে দিয়েছি ip অ্যাপস => চালিত ইউআই 0 টি প্রক্রিয়া এবং 0 পরিষেবা দেখিয়েছে। পরে আমি আলাদা অ্যাপ্লিকেশন নির্দিষ্ট প্রক্রিয়ায় চলমান একটি প্রক্রিয়া সহ একই অ্যাপটিকে সরিয়ে দিয়েছি। অ্যাপস => চলমান ইউআই বলেছে যে আমার 0 টি প্রক্রিয়া এবং 1 টি পরিষেবা রয়েছে। এটি অ্যান্ড্রয়েড ৪.৪.৪ সহ একটি মটো এক্সে (২০১৪) ছিল।
স্টিভেন ওয়েক্সলার 16

@ স্টিভেন ওয়েল্সার: এটি হতে পারে যে পরিষেবাটি প্রথম ক্ষেত্রে নিজের দ্বারা শেষ হয়েছিল তবে দ্বিতীয়টি নয়, বা এটি হতে পারে দ্বিতীয় দৃশ্যে মূল প্রক্রিয়াটি নির্ধারিত হয়েছিল (কোনও কারণে) যে পরিষেবাটি থামাতে চায়নি। নিশ্চিতভাবে জানা শক্ত।
ওনাররেথিস

সাম্প্রতিক তালিকা থেকে সোয়াইপ করার পরে আরম্ভ করা পরিষেবাটি স্বয়ংক্রিয়ভাবে শুরু হয়, এর অনক্রিট আবার কল করেছে। তবে কিছু অ্যাপগুলিতে অনক্রিট অনটাস্ক্রোমোভেডের আগে কল হয়েছিল এবং কিছুটিতে এটি অন টাস্ক্রোমোভেড নামে পরিচিত। তাহলে কেন এমন আচরণ?
umesh

21

Com.android.internal.policy.impl.Recent অ্যাপ্লিকেশনস ব্যাকগ্রাউন্ড এবং com.android.intern.policy.impl . রিসেন্ট অ্যাপ্লিকেশনস ডায়ালগ ক্লাসে উত্স কোডে কিছু তথ্য রয়েছে ।

আমি যদি এগুলি সঠিকভাবে পড়ে থাকি তবে অ্যাপ্লিকেশনগুলি নির্বাচনের জন্য নির্দিষ্ট হ্যান্ডলার রয়েছে তবে এগুলিকে স্যুইপ করার জন্য বিশেষ কিছু নেই onDetachedFromWindow()যা কল করে com.android.View.onDetachedFromWindow()যা মূলত উপাদানটিকে গোপন করে এবং এর ডেটা সাফ করে। এটি এই ইঙ্গিত দেবে যে অ্যাপটি সোয়াইপ করার ক্ষেত্রে বিশেষ কিছু ঘটে না যা অস্টিন মিলের জবাবের সাথে মিলে যায়, কারণ যেহেতু তালিকাটি সক্রিয় অ্যাপটি দেখায় না, onPause()এবং অন্যান্য সিস্টেম কলগুলি যখন অ্যাপ্লিকেশনটিকে "ছাড়ার" সময় করা হয় ইতিমধ্যে ঘটেছে।


10

আমি মনে করি এটি পিছনের বোতামের মতোই করবে। একটু পরিবর্তন বাদে। এটি finish()অ্যাপ্লিকেশনটিতে সমস্ত ক্রিয়াকলাপ / টুকরা হবে ।

সামান্য স্ব-বিল্ড অ্যাপ দিয়ে সবেমাত্র একটি পরীক্ষা চালিয়েছি testing আপনি পরীক্ষা করতে পারেন। আমার পরীক্ষামূলক অ্যাপ্লিকেশনটি এখানে করুন: https://bitbucket.org/Leandros99/lifecycletest ( ডাউনলোডও উপলব্ধ, যারা তৈরি করতে পারেন না তাদের জন্যও)
প্রতিটি ক্রিয়াকলাপের জীবনচক্র পদ্ধতিতে ( http://developer.android.com/references/android/app /অ্যাক্টিভিটি.এইচটিএমএল_অ্যাক্টিভিটি লাইফাইসাইকেল ) অ্যাপটি একটি লগ মুদ্রণ করুন। আপনি এটি এডিবি লগক্যাট দিয়ে দেখতে পারেন (অ্যান্ড্রয়েড এসডিকে ইনস্টল করুন, সিএমডি / শেল এ প্ল্যাটফর্ম-সরঞ্জামগুলিতে সিডি করুন এবং টাইপ করুন adb logcatNow এখন আপনি দেখতে পাবেন, যতবার আপনি হিট ব্যাক বা হোম বোতামের মতো কিছু করেন, অ্যাপটি উপরে উল্লিখিত লাইফসাইকেল পদ্ধতিটি প্রিন্ট করে। )

আপনার প্রশ্ন: আমি যদি সাম্প্রতিক অ্যাপস ড্রয়ার থেকে কোনও অ্যাপ সোয়াইপ করি তবে onDestroyপদ্ধতিটি কল করা হবে। এটি ব্যাক বোতামের মতো প্রায় একই কাজ করে।
আশা করি আমি কিছুটা সাহায্য করেছি। যদি প্রশ্ন থাকে তবে জিজ্ঞাসা করুন।


3

এটি অ্যাপটি এবং এটির ডেটা র‍্যামে সঞ্চিত থাকে। এইভাবে, আপনাকে আরও র‌্যাম স্পেস দিচ্ছে যাতে আপনি অন্যান্য অ্যাপ্লিকেশন চালাতে পারেন। তবে, অ্যাপ্লিকেশনটি বন্ধ করে দেওয়ার ফলে ব্যাকগ্রাউন্ড পরিষেবাগুলি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় না।


1
যদিও প্রতিদিনের ভাষায় লিখিত, এটি আসলে একটি মোটামুটি সঠিক উত্তর - এটি প্রক্রিয়াটি নিষ্পত্তি হওয়ার বিষয়টি সত্য করে তোলে, অন্যান্য উত্তরগুলির অনেক কিছুই (যারা ভুল করে এটি পিছনের বোতামের সাথে তুলনা করে) অনুপস্থিত রয়েছে। তবে, এখানে যা অনুপস্থিত তা এই উপলব্ধিটি হ'ল যেভাবেই মেমরি পাওয়ার জন্য অ্যান্ড্রয়েড প্রক্রিয়াগুলি নিষ্পত্তি করবে, সুতরাং যখন এটি কিছু মেমরি ক্লিনআপ সম্পন্ন করে, তখন / যখন প্রয়োজন হয় স্বয়ংক্রিয়ভাবে ঘটবে।
ক্রিস স্ট্রাটন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.