Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса β€” ΠΎΠ΄Π½Π° ΠΈΠ· Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8. Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° послС выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, сохранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ возникновСния ошибки, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, справочника ΠΈΠ»ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ простоС скрытиС ΠΎΠΊΠ½Π° Π½Π΅ освобоТдаСт рСсурсы, поэтому ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„ΠΎΡ€ΠΌΠΎΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования спСциализированных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ выполняСтся ΠΊΠΎΠ΄ β€” Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ самой Ρ„ΠΎΡ€ΠΌΡ‹, Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ события β€” ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ нСсколько инструмСнтов для управлСния этим процСссом, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свои Π½ΡŽΠ°Π½ΡΡ‹ повСдСния ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ памяти ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ повСдСнию интСрфСйса, ΠΊΠΎΠ³Π΄Π° Ρ„ΠΎΡ€ΠΌΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ исчСзаСт, Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ остаСтся Π² памяти.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ основныС способы закрытия Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, рассмотрим различия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ() ΠΈ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒΠžΠΊΠ½ΠΎ(), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ событий, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ закрытия. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ бСзопасно Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ пытаСтся Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ закрытия Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ· Π΅Π΅ модуля

Π‘Π°ΠΌΡ‹ΠΉ распространСнный сцСнарий β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈΠ· ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится нСпосрСдствСнно Π² Π΅Π΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅. Для этого Π² глобальном контСкстС Ρ„ΠΎΡ€ΠΌΡ‹ доступСн ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ(). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠΊΠ½ΠΎΠΌ. Он провСряСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ закрытия, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого удаляСт Ρ„ΠΎΡ€ΠΌΡƒ ΠΈΠ· памяти.

ИспользованиС этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ссли Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ΄Π° Ρ„ΠΎΡ€ΠΌΡ‹. Достаточно Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ дСйствия ΠΏΠΎ очисткС. Однако стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π΅ΡΡ‚ΡŒ нСсохранСнныС измСнСния, систСма ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π² зависимости ΠΎΡ‚ свойств Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Если ΠΆΠ΅ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Ρ„ΠΎΡ€ΠΌΠΎΠΉ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ модально, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ() Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ этот Ρ€Π΅ΠΆΠΈΠΌ, возвращая ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·Π²Π°Π²ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ. Π­Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ построСнии слоТных сцСнариСв Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ ΠΎΠ΄Π½Π° Ρ„ΠΎΡ€ΠΌΠ° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ для уточнСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ() Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события ΠŸΡ€ΠΈΠ—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ рСкурсивному Π²Ρ‹Π·ΠΎΠ²Ρƒ ΠΈ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΡŽ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° вашСго ΠΊΠΎΠ΄Π° Π½Π΅ пытаСтся Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΡƒΠΆΠ΅ закрываСтся.

πŸ’‘

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ послС выполнСния Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ это Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Π½Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… участков ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² управлСния.

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ· внСшнСго модуля ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ контСкста

Часто Π·Π°Π΄Π°Ρ‡Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π²Π½Π΅ модуля самой Ρ„ΠΎΡ€ΠΌΡ‹. НапримСр, Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅, ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ внСшнСго события. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π΅Ρ‚ прямого доступа ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ(), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ контСкст выполнСния отличаСтся. Π—Π΄Π΅ΡΡŒ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒΠžΠΊΠ½ΠΎ().

ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒΠžΠΊΠ½ΠΎ() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ интСрфСйсом Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ контСкст Π€ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π΅ явно ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ внСшнСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ асинхронно ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ событиям ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

ΠŸΡ€ΠΈ использовании Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒΠžΠΊΠ½ΠΎ() ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ провСряСт Ρ„Π»Π°Π³ΠΈ модифицированности. Если Ρ„ΠΎΡ€ΠΌΠ° Π±Ρ‹Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°, Π½ΠΎ Π½Π΅ сохранСна, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ систСмы Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ настроСк ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ явноС сохранСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° закрытия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π»ΠΈΡˆΠ½ΠΈΡ… вопросов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

β˜‘οΈ Алгоритм закрытия ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ модуля

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° события ΠŸΡ€ΠΈΠ—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π° закрытия

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ элСмСнтом контроля Π·Π° ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΎΠΊΠ½Π° являСтся событиС ΠŸΡ€ΠΈΠ—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ. Оно срабатываСт нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½Π°. Π’ этом ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ дСйствия: ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ настройки, Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ события ΠžΡ‚ΠΊΠ°Π· позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹. Если ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ этому ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π˜ΡΡ‚ΠΈΠ½Π°, ΠΎΠΊΠ½ΠΎ останСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ пытаСтся Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ ошибки заполнСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ вывСсти ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.

Однако использованиС ΠΎΡ‚ΠΊΠ°Π·Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остороТности. БСсконСчныС Ρ†ΠΈΠΊΠ»Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ»ΠΈ слоТныС вычислСния Π² этом ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ "ΠΏΠΎΠ΄Π²Π΅ΡΠΈΡ‚ΡŒ" интСрфСйс. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½ΠΎ систСмными процСссами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния), ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ запроса ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ сСанса.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ ΠœΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π·ΠΎΠ²Π° Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ выполнСния
Кнопка "Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ" Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ() Π”Π° (Ρ‡Π΅Ρ€Π΅Π· ΠžΡ‚ΠΊΠ°Π·) ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹
Π’Π°ΠΉΠΌΠ΅Ρ€ автозакрытия Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒΠžΠΊΠ½ΠΎ() Π”Π° (Ρ‡Π΅Ρ€Π΅Π· ΠžΡ‚ΠΊΠ°Π·) Π›ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ
Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Esc БистСмноС Π”Π° (Ρ‡Π΅Ρ€Π΅Π· ΠžΡ‚ΠΊΠ°Π·) БистСма
Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ прилоТСния БистСмноС ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ БистСма
πŸ“Š Как Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π² 1Π‘?
Π§Π΅Ρ€Π΅Π· ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² интСрфСйсС
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ· модуля Ρ„ΠΎΡ€ΠΌΡ‹
Из ΠΎΠ±Ρ‰Π΅Π³ΠΎ модуля
АвтоматичСски ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° закрытия ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности. Модальная Ρ„ΠΎΡ€ΠΌΠ° Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ прилоТСния Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ· внСшнСго ΠΊΠΎΠ΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

Если Ρ„ΠΎΡ€ΠΌΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΠœΠΎΠ΄Π°Π»ΡŒΠ½ΠΎ(), Ρ‚ΠΎ ΠΊΠΎΠ΄, Π²Ρ‹Π·Π²Π°Π²ΡˆΠΈΠΉ это ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, приостанавливаСт своС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π΅Π΅ собствСнного модуля ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ доступ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ ΠΎΠΊΠ½Ρƒ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΏΠΎΠΊΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ модальноС Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ блокируСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΎΠΊΠ½Π°.

Π’ случаях, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ асинхронноС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌ (Ρ‡Π΅Ρ€Π΅Π· описания ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ), Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠΌ для продолТСния выполнСния основного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Π—Π΄Π΅ΡΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ закрытия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ³ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡ….

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях. ВсСгда провСряйтС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΠΎΠ½ Π² Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ различия.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° рСсурсов ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти

Π₯отя ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ автоматичСски управляСт ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, нСкоррСктная Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΈΡ… зависанию Π² памяти. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для Ρ„ΠΎΡ€ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ»ΠΈ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ…. ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° закрытия рСкомСндуСтся ΠΎΠ±Π½ΡƒΠ»ΡΡ‚ΡŒ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Если Π²Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ ссылку Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ модуля ΠΈΠ»ΠΈ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ послС закрытия эта ссылка очищаСтся. Π˜Π½Π°Ρ‡Π΅ сборщик мусора Π½Π΅ смоТСт ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ рСсурсы, занятыС Ρ„ΠΎΡ€ΠΌΠΎΠΉ, Ρ‡Ρ‚ΠΎ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ замСдлСнию Ρ€Π°Π±ΠΎΡ‚Ρ‹ клиСнтского прилоТСния. Π­Ρ‚ΠΎ частая ошибка ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ слоТных интСрфСйсов с динамичСским ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ½.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° подписки Π½Π° события. Если Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Π»Π°ΡΡŒ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ внСшниС события (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, измСнСния Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹), эти подписки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ сняты Π΄ΠΎ ΠΈΠ»ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ закрытия Ρ„ΠΎΡ€ΠΌΡ‹. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΡƒΠΆΠ΅ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹, вызывая ошибки выполнСния.

Π”Π΅Ρ‚Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сборщика мусора

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора Π² 1Π‘ срабатываСт автоматичСски, Π½ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ссылок Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹ прСпятствуСт Π΅Π³ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ. Π―Π²Π½ΠΎΠ΅ присваиваниС НСопрСдСлСно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ ускоряСт этот процСсс.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ способы ΠΈΡ… устранСния

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ситуациСй, ΠΊΠΎΠ³Π΄Π° Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ закрываСтся, нСсмотря Π½Π° Π²Ρ‹Π·ΠΎΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Одной ΠΈΠ· распространСнных ΠΏΡ€ΠΈΡ‡ΠΈΠ½ являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ интСрфСйса ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² основном ΠΏΠΎΡ‚ΠΎΠΊΠ΅. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΊΠΎΠΌΠ°Π½Π΄Π° закрытия ставится Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈ выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

Другая частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ, которая ΡƒΠΆΠ΅ находится Π² процСссС закрытия. Π­Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ошибки выполнСния ΠΈΠ»ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Для прСдотвращСния Ρ‚Π°ΠΊΠΈΡ… ситуаций ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°Π³ΠΈ состояния ΠΈΠ»ΠΈ провСряйтС свойство Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² управлСния.

Π’ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ особСнности Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΠ° исчСзаСт, Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ остаСтся Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ явный Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² обновлСния интСрфСйса ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ использованиС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ описания ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ.

πŸ’‘

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ бСзопасного закрытия: всСгда провСряйтС, Π½Π΅ находится Π»ΠΈ Ρ„ΠΎΡ€ΠΌΠ° Π² состоянии ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС ссылки Π½Π° Π½Π΅Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½ΡƒΠ»Π΅Π½Ρ‹ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ() ΠΈ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒΠžΠΊΠ½ΠΎ()?

ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ() являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ вызываСтся ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ Π΅Π΅ модуля. ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒΠžΠΊΠ½ΠΎ() β€” это Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ ΠΈΠ· любого мСста ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ ссылка Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ.

МоТно Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ?

Π”Π°, это дСлаСтся Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события ΠŸΡ€ΠΈΠ—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ. НСобходимо ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠžΡ‚ΠΊΠ°Π· Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π˜ΡΡ‚ΠΈΠ½Π°. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ„ΠΎΡ€ΠΌΡ‹.

Π§Ρ‚ΠΎ происходит с нСсохранСнными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ?

ПовСдСниС зависит ΠΎΡ‚ свойства Ρ„ΠΎΡ€ΠΌΡ‹ ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ настроСк ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ систСма Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Если Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΊΠΎΠ΄ΠΎΠΌ Π±Π΅Π· участия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ потСряны, Ссли Π½Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ().

Как Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ всС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ сразу?

НСобходимо ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ контСкст ΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒΠžΠΊΠ½ΠΎ() для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ. ΠŸΡ€ΠΈ этом слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ порядок закрытия, особСнно Ссли Π΅ΡΡ‚ΡŒ зависимыС ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π°.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ закрываСтся послС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°?

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹: Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° интСрфСйса Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, ошибка Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠŸΡ€ΠΈΠ—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ (установлСн ΠžΡ‚ΠΊΠ°Π·), ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠ° ΡƒΠΆΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚Π°. Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π½Π΅ удСрТиваСтся Π»ΠΈ ссылка Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ….