දැන්වීම වසන්න

iOS වල Multitasking වැඩ කරන්නේ කොහොමද කියලා දන්නේ නැති ගොඩක් අය තාම ඉන්නවා. කෙසේ වෙතත්, ආරම්භ කිරීම සඳහා, මෙය සැබෑ බහුකාර්යයක් නොව, පද්ධතියට හෝ පරිශීලකයාට බරක් නොවන ඉතා බුද්ධිමත් විසඳුමක් බව පෙන්වා දිය යුතුය.

iOS හි පසුබිමේ ක්‍රියාත්මක වන යෙදුම් මෙහෙයුම් මතකය පුරවන බවට මිථ්‍යා විශ්වාස කෙනෙකුට බොහෝ විට ඇසෙනු ඇත, එය පද්ධතිය මන්දගාමී වීමට සහ බැටරි ආයු කාලයට හේතු වේ, එබැවින් පරිශීලකයා ඒවා අතින් ක්‍රියා විරහිත කළ යුතුය. බහුකාර්ය තීරුවේ ඇත්ත වශයෙන්ම සියලුම ධාවන පසුබිම් ක්‍රියාවලි ලැයිස්තුවක් අඩංගු නොවේ, නමුත් ඉතා මෑතකදී දියත් කරන ලද යෙදුම් පමණි. එබැවින් පරිශීලකයාට අවස්ථා කිහිපයකදී හැර පසුබිමේ ක්‍රියාත්මක වන ක්‍රියාවලීන් ගැන කරදර විය යුතු නැත. ඔබ මුල් පිටුව බොත්තම එබූ විට, යෙදුම සාමාන්‍යයෙන් නින්දට හෝ වැසෙන අතර එමඟින් එය තවදුරටත් ප්‍රොසෙසරය හෝ බැටරිය පටවන්නේ නැති අතර අවශ්‍ය නම් අවශ්‍ය මතකය නිදහස් කරයි.

එබැවින් ඔබ සතුව ක්‍රියාවලි දුසිම් ගණනක් ක්‍රියාත්මක වන විට මෙය පූර්ණ බහුකාර්යයක් නොවේ. එක් යෙදුමක් පමණක් පෙරබිමෙහි ක්‍රියාත්මක වේ, එය අවශ්‍ය නම් විරාම කර හෝ සම්පූර්ණයෙන්ම ක්‍රියා විරහිත වේ. පසුබිමේ ක්‍රියාත්මක වන්නේ ද්විතියික ක්‍රියාවලි කිහිපයක් පමණි. ඔබ iOS මත යෙදුම් බිඳවැටීමක් කලාතුරකින් හමුවන්නේ එබැවිනි, උදාහරණයක් ලෙස ඇන්ඩ්‍රොයිඩ් භාවිතා කරන්නා විසින් සැලකිලිමත් විය යුතු ධාවනය වන යෙදුම් වලින් යටපත් වී ඇත. එක් අතකින්, මෙය උපාංගය සමඟ වැඩ කිරීම අප්රසන්න වන අතර, අනෙක් අතට, එය මන්දගාමී ආරම්භය සහ යෙදුම් අතර සංක්රමණයට හේතු වේ.

යෙදුම් ධාවන කාල වර්ගය

ඔබගේ iOS උපාංගයේ යෙදුම මෙම ප්‍රාන්ත 5න් එකකි:

  • ධාවනය: යෙදුම ආරම්භ කර පෙරබිමෙහි ධාවනය වේ
  • පසුබිම: එය තවමත් ක්‍රියාත්මක වන නමුත් පසුබිමේ ක්‍රියාත්මක වේ (අපට වෙනත් යෙදුම් භාවිතා කළ හැක)
  • අත්හිටුවන ලදී: තවමත් RAM භාවිතා කරන නමුත් ධාවනය නොවේ
  • අක්රිය: යෙදුම ක්‍රියාත්මක වන නමුත් වක්‍ර විධාන (උදාහරණයක් ලෙස, ඔබ යෙදුම ක්‍රියාත්මක වන විට උපාංගය අගුළු දැමූ විට)
  • ධාවනය නොවේ: යෙදුම අවසන් වී හෝ ආරම්භ කර නැත

බාධා නොවන පරිදි යෙදුම පසුබිමට යන විට ව්‍යාකූලත්වය පැමිණේ. ඔබ මුල් පිටුව බොත්තම එබූ විට හෝ යෙදුම (iPad) වසා දැමීමට අභිනය භාවිතා කරන විට, යෙදුම පසුබිමට යයි. බොහෝ යෙදුම් තත්පර කිහිපයකින් අත්හිටුවයි (ඒවා iDevice හි RAM හි ගබඩා කර ඇති බැවින් ඒවා ඉක්මනින් දියත් කළ හැකිය, ප්‍රොසෙසරය එතරම් පටවන්නේ නැත, එබැවින් බැටරි ආයු කාලය ඉතිරි වේ) යෙදුමක් දිගටම මතකය භාවිතා කරන්නේ නම්, ඔබට ඇති බව ඔබට සිතෙනු ඇත. එය නිදහස් කිරීම සඳහා එය අතින් මකා දැමීමට . නමුත් ඔබට එය කිරීමට අවශ්‍ය නැත, මන්ද iOS එය ඔබ වෙනුවෙන් කරනු ඇත. ඔබට විශාල RAM ප්‍රමාණයක් භාවිතා කරන ක්‍රීඩාවක් වැනි ඉල්ලුමක් සහිත යෙදුමක් පසුබිමේ අත්හිටුවා ඇත්නම්, අවශ්‍ය විට iOS ස්වයංක්‍රීයව එය මතකයෙන් ඉවත් කරයි, සහ යෙදුම් නිරූපකය තට්ටු කිරීමෙන් ඔබට එය නැවත ආරම්භ කළ හැක.

මෙම ප්‍රාන්ත කිසිවක් බහුකාර්ය තීරුව තුළ පිළිබිඹු නොවේ, පැනලය පෙන්වන්නේ යෙදුම නැවැත්වීම, විරාම කිරීම හෝ පසුබිමේ ධාවනය වීම නොසලකා මෑතකදී දියත් කළ යෙදුම් ලැයිස්තුවක් පමණි. දැනට ක්‍රියාත්මක වන යෙදුම බහු කාර්ය මණ්ඩලයේ නොපෙන්වන බව ඔබට පෙනෙනු ඇත

පසුබිම් කාර්යයන්

සාමාන්‍යයෙන්, ඔබ මුල් පිටුව බොත්තම එබූ විට, යෙදුම පසුබිමේ ක්‍රියාත්මක වන අතර ඔබ එය භාවිතා නොකරන්නේ නම්, එය තත්පර පහක් ඇතුළත ස්වයංක්‍රීයව විරාම ගැන්වේ. එබැවින් ඔබ පොඩ්කාස්ට් බාගත කරන්නේ නම්, උදාහරණයක් ලෙස, පද්ධතිය එය ධාවනය වන යෙදුමක් ලෙස ඇගයීමට ලක් කර විනාඩි දහයකින් අවසන් කිරීම ප්‍රමාද කරයි. මිනිත්තු දහයකට පසු, ක්‍රියාවලිය මතකයෙන් මුදා හරිනු ලැබේ. කෙටියෙන් කිවහොත්, එය සම්පූර්ණ කිරීමට මිනිත්තු 10 කට වඩා ගත නොවන්නේ නම්, මුල් පිටුව බොත්තම එබීමෙන් ඔබේ බාගත කිරීම බාධා කිරීම ගැන ඔබට කරදර විය යුතු නැත.

පසුබිමේ අවිනිශ්චිත ධාවනය

අක්‍රිය අවස්ථාවකදී, පද්ධතිය තත්පර පහක් ඇතුළත යෙදුම අවසන් කරයි, බාගැනීම් වලදී, අවසන් කිරීම විනාඩි දහයක් ප්‍රමාද වේ. කෙසේ වෙතත්, පසුබිමේ ධාවනය කිරීමට අවශ්‍ය යෙදුම් කුඩා සංඛ්‍යාවක් ඇත. iOS 5 හි දින නියමයක් නොමැතිව පසුබිමේ ධාවනය කළ හැකි යෙදුම් සඳහා උදාහරණ කිහිපයක් මෙන්න:

  • ශබ්දය වාදනය කරන සහ ටික වේලාවකට බාධා කළ යුතු යෙදුම් (දුරකථන ඇමතුමක් අතරතුර සංගීතය විරාම කිරීම, ආදිය),
  • ඔබගේ ස්ථානය නිරීක්ෂණය කරන යෙදුම් (සංචල මෘදුකාංග),
  • VoIP ඇමතුම් ලබා ගන්නා යෙදුම්, උදාහරණයක් ලෙස ඔබ Skype භාවිතා කරන්නේ නම්, යෙදුම පසුබිමේ ඇති විට පවා ඔබට ඇමතුමක් ලබා ගත හැක,
  • ස්වයංක්‍රීය බාගැනීම් (උදා: Newsstand).

ඒවා තවදුරටත් කාර්යයක් සිදු නොකරන්නේ නම් (පසුබිම් බාගැනීම් වැනි) සියලුම යෙදුම් වසා දැමිය යුතුය. කෙසේ වෙතත්, ස්වදේශීය තැපැල් යෙදුම වැනි පසුබිමේ අඛණ්ඩව ධාවනය වන ව්‍යතිරේක පවතී. ඔවුන් පසුබිමේ ධාවනය කරන්නේ නම්, ඔවුන් මතකය, CPU භාවිතය හෝ බැටරි ආයු කාලය අඩු කරයි

පසුබිමේ දින නියමයක් නොමැතිව ධාවනය කිරීමට අවසර දී ඇති යෙදුම්වලට සංගීතය වාදනය කිරීමේ සිට නව පොඩ්කාස්ට් කථාංග බාගත කිරීම දක්වා ක්‍රියාත්මක වන විට ඔවුන් කරන ඕනෑම දෙයක් කළ හැකිය.

මා කලින් සඳහන් කළ පරිදි, පරිශීලකයාට කිසි විටෙකත් පසුබිමේ ක්‍රියාත්මක වන යෙදුම් වසා දැමීමට අවශ්‍ය නොවේ. මෙයට ඇති එකම ව්‍යතිරේකය වන්නේ පසුබිමේ ක්‍රියාත්මක වන යෙදුමක් බිඳ වැටීම හෝ නිසි ලෙස නින්දෙන් අවදි නොවීමයි. එවිට පරිශීලකයාට බහුකාර්ය තීරුව තුළ යෙදුම් අතින් වසා දැමිය හැක, නමුත් මෙය කලාතුරකින් සිදු වේ.

එබැවින්, පොදුවේ, ඔබට පසුබිම් ක්‍රියාවලීන් කළමනාකරණය කිරීමට අවශ්‍ය නැත, මන්ද පද්ධතිය විසින්ම ඒවා රැකබලා ගනු ඇත. iOS ඉතා නැවුම් සහ වේගවත් පද්ධතියක් වන්නේ එබැවිනි.

සංවර්ධකයෙකුගේ දෘෂ්ටිකෝණයෙන්

බහු කාර්යයේ කොටසක් ලෙස යෙදුමට විවිධ ප්‍රාන්ත හයක් සමඟ ප්‍රතික්‍රියා කළ හැකිය:

1. applicationWillResignActive

පරිවර්තනයේදී, මෙම තත්වයෙන් අදහස් වන්නේ යෙදුම අනාගතයේදී (මිලි තත්පර කිහිපයක ප්‍රශ්නයක්) සක්‍රිය යෙදුම (එනම්, පෙරබිමෙහි ඇති යෙදුම) ලෙස ඉල්ලා අස්වනු ඇති බවයි. උදාහරණයක් ලෙස, යෙදුම භාවිතා කරන අතරතුර ඇමතුමක් ලැබෙන විට මෙය සිදු වේ, නමුත් ඒ සමඟම, යෙදුම පසුබිමට යාමට පෙර මෙම ක්‍රමය ද මෙම තත්වයට හේතු වේ, එබැවින් ඔබ මෙම වෙනස්කම් සැලකිල්ලට ගත යුතුය. මෙම ක්‍රමය ද සුදුසු බැවින්, උදාහරණයක් ලෙස, ලැබෙන ඇමතුමක් ඇති විට එය සිදු කරන සියලුම ක්‍රියාකාරකම් අත්හිටුවා ඇමතුම අවසන් වන තෙක් රැඳී සිටියි.

2. applicationDidEnterBackground

තත්ත්වය පෙන්නුම් කරන්නේ යෙදුම පසුබිමට ගොස් ඇති බවයි. සංවර්ධකයින් පසුබිමේ ක්‍රියාත්මක වීමට අවශ්‍ය නොවන සියලුම ක්‍රියාවලීන් අත්හිටුවීමට සහ භාවිතයට නොගත් දත්තවල මතකය ඉවත් කිරීමට සහ ටයිමර කල් ඉකුත්වීම, අවශ්‍ය නොවන මතකයෙන් පටවන ලද පින්තූර ඉවත් කිරීම හෝ වසා දැමීම වැනි වෙනත් ක්‍රියාවලීන් සඳහා සංවර්ධකයින් මෙම ක්‍රමය භාවිතා කළ යුතුය. සේවාදායකයන් සමඟ සම්බන්ධතා, යෙදුමට පසුබිමේ සම්බන්ධතා සම්පූර්ණ කිරීම අත්‍යවශ්‍ය නොවේ නම්. යෙදුමක ක්‍රමය ක්‍රියාත්මක කරන විට, එහි යම් කොටසක් පසුබිමේ ක්‍රියාත්මක වීමට අවශ්‍ය නැතිනම් යෙදුම සම්පූර්ණයෙන්ම අත්හිටුවීමට එය අත්‍යවශ්‍යයෙන්ම භාවිතා කළ යුතුය.

3. applicationWillEnterForeground

මෙම තත්වය පළමු තත්වයේ ප්‍රතිවිරුද්ධයයි, එහිදී යෙදුම සක්‍රිය තත්වයට ඉල්ලා අස්වනු ඇත. ප්‍රාන්තය සරලව අදහස් කරන්නේ නිදාගැනීමේ යෙදුම පසුබිමෙන් නැවත ආරම්භ වී ඉදිරි මිලි තත්පර කිහිපය තුළ පෙරබිමේ දිස්වන බවයි. යෙදුම පසුබිමේ තිබියදී අක්‍රිය වූ ඕනෑම ක්‍රියාවලියක් නැවත ආරම්භ කිරීමට සංවර්ධකයින් මෙම ක්‍රමය භාවිතා කළ යුතුය. සේවාදායකයන් වෙත සම්බන්ධතා නැවත ස්ථාපිත කළ යුතුය, ටයිමර යළි පිහිටුවීම, පින්තූර සහ දත්ත මතකයට පූරණය කළ යුතුය, සහ පරිශීලකයා නැවත පූරණය කළ යෙදුම බැලීමට පෙර අවශ්‍ය අනෙකුත් ක්‍රියාවලීන් නැවත ආරම්භ කළ හැකිය.

4. applicationDidBecomeActive

ප්‍රාන්තය පෙන්නුම් කරන්නේ යෙදුම පෙරබිමට ප්‍රතිසාධනය කිරීමෙන් පසුව සක්‍රිය වී ඇති බවයි. මෙය පරිශීලක අතුරුමුහුණතට අමතර ගැලපීම් කිරීමට හෝ UI එහි මුල් තත්වයට ප්‍රතිස්ථාපනය කිරීමට භාවිතා කළ හැකි ක්‍රමයකි. මෙය ඇත්ත වශයෙන්ම සිදුවන්නේ පරිශීලකයා දැනටමත් සංදර්ශකය මත යෙදුම දකින මොහොතේදීය, එබැවින් එය අවශ්‍ය වේ. මෙම ක්‍රමයේ සහ පෙර ක්‍රමයේ සිදුවන්නේ කුමක්ද යන්න ප්‍රවේශමෙන් තීරණය කරන්න. ඒවා මිලි තත්පර කිහිපයක වෙනසක් ඇතිව එකකට පසුව එකක් ලෙස හැඳින්වේ.

5. යෙදුම අවසන් වේ

යෙදුම පිටවීමට මිලි තත්පර කිහිපයකට පෙර, එනම් යෙදුම ඇත්ත වශයෙන්ම අවසන් වීමට පෙර මෙම තත්වය සිදු වේ. බහු කාර්යයෙන් අතින් හෝ උපාංගය අක්‍රිය කරන විට. සැකසූ දත්ත සුරැකීමට, සියලු ක්‍රියාකාරකම් අවසන් කිරීමට සහ තවදුරටත් අවශ්‍ය නොවන දත්ත මකා දැමීමට ක්‍රමය භාවිතා කළ යුතුය.

6. applicationDidReceiveMemoryWarning

එය වඩාත් සාකච්ඡා කෙරෙන අවසාන රාජ්‍යය වේ. එය පද්ධති සම්පත් අනවශ්‍ය ලෙස භාවිතා කරන්නේ නම්, අවශ්‍ය නම්, iOS මතකයෙන් යෙදුම ඉවත් කිරීම සඳහා එය වගකිව යුතුය. IOS පසුබිම් යෙදුම් සමඟ කරන්නේ කුමක්දැයි මම විශේෂයෙන් නොදනිමි, නමුත් එයට වෙනත් ක්‍රියාවලීන් වෙත සම්පත් මුදා හැරීමට යෙදුමක් අවශ්‍ය නම්, එය සතුව ඇති සම්පත් මුදා හැරීමට මතක අනතුරු ඇඟවීමක් සමඟ එය පොළඹවයි. එබැවින් මෙම ක්රමය යෙදුම තුළ හැඳින්වේ. සංවර්ධකයින් එය ක්‍රියාත්මක කළ යුතු අතර එමඟින් යෙදුම විසින් වෙන් කර ඇති මතකය අත්හැරීමටත්, සිදුවෙමින් පවතින සියල්ල සුරැකීමටත්, මතකයෙන් අනවශ්‍ය දත්ත ඉවත් කිරීමටත්, එසේ නොමැතිනම් ප්‍රමාණවත් ලෙස මතකය නිදහස් කිරීමටත් හැකි වේ. බොහෝ සංවර්ධකයින්, ආරම්භකයින් පවා එවැනි දේවල් ගැන නොසිතන හෝ තේරුම් නොගන්නා බව සත්‍යයකි, එවිට ඔවුන්ගේ යෙදුම පසුබිමේ පවා බැටරි ආයු කාලයට තර්ජනයක් වන අතර / හෝ අනවශ්‍ය ලෙස පද්ධති සම්පත් පරිභෝජනය කරයි.

තීන්දුව

මෙම ප්‍රාන්ත හය සහ ඒවාට සම්බන්ධ ක්‍රම iOS හි ඇති සියලුම "බහු කාර්ය" වල පසුබිම වේ. සංවර්ධකයින් විසින් ඔවුන්ගේ පරිශීලකයින්ගේ උපාංග මත යෙදුම විසි කරන්නේ කුමක් ද යන්න ගැන වගකියන්න අවශ්‍ය බව නොසලකා හරින තාක් කල් එය විශිෂ්ට පද්ධතියකි, ඒවා අවම කර ඇත්නම් හෝ පද්ධතියෙන් අනතුරු ඇඟවීම් ලබා ගන්නේ නම් සහ යනාදිය.

මූලාශ්රය: මැක්වර්ල්ඩ්.කොම්

කර්තෘ: Jakub Požárek, Martin Doubek (ArnieX)

 
ඔබටත් විසඳිය යුතු ගැටලුවක් තිබේද? ඔබට උපදෙස් අවශ්‍යද නැතහොත් සමහර විට නිවැරදි යෙදුම සොයා ගත හැකිද? කොටසේ ඇති පෝරමය හරහා අප හා සම්බන්ධ වීමට පසුබට නොවන්න උපදේශනය, ඊළඟ වතාවේ අපි ඔබේ ප්‍රශ්නයට පිළිතුරු දෙන්නෙමු.

.