-
[AOS] Android Screen ON / OFF Detect2023. 6. 30. 15:41๋ฐ์ํ๐ฎ๐ปโ๏ธ์ฑ ์คํ ์ ํ๋ฉด์ด ๊บผ์ก๋ค ์ผ์ ธ๋ ์ฌ์ฉ์ ์ธ์ฆ์ ๋ค์ ์ํ๋ค์..?์...?๐ถ๐ฎ๐ปโ๏ธ๊ณ ์น์ธ์.๋ค...๐ถ
์ฑ ์คํ ์ํ์์ ์ ์ ๋ฒํผ์ ๋๋ฌ ์ฑ ํ๋ฉด์ ํค๊ณ ๋ ๋ ์ํํ action์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ด๋ค.
IntentFilter๋ฅผ ์ด์ฉํด ์คํฌ๋ฆฐ ์ํ๋ฅผ ํ์ธํ๊ณ , BroadcastReceiver๋ก ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ์ํ๋ฅผ ํ์ธํ๋ค.
IntentFilter & BroadcastReceiver
1. Receiver๋ฅผ registerํ์ผ๋ฉด unregister๋ฅผ ์ํํด์ผ ํ๊ธฐ ๋๋ฌธ์ receiver๋ ์ ์ญ๋ณ์๋ก ์ ์ธํด์ค๋ค.
private val receiver: BroadcastReceiver? = null
2. receiver ์ ์ ๋ฐ register
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val intentFilter = IntentFilter() intentFilter.addAction(Intent.ACTION_SCREEN_OFF) receiver = object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent) { if (intent.action == Intent.ACTION_SCREEN_OFF) { // to do when screen status is off } else { // to do when screen status is on } } } registerReceiver(receiver, intentFilter) }
3. receiver unregister
override fun onDestroy() { super.onDestroy() unregisterReceiver(receiver); }
๋ง์ฝ, unregister๋ฅผ ์ํํ์ง ์๋๋ค๋ฉด ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
๐ชฒ
android Are you missing a call to unregisterReceiver()?
receiver๋ฅผ unregisterํด์ฃผ์ง ์์ ๋ฐ์ํ๋ ์ค๋ฅ์ด๋ฏ๋ก, ์ฑ์ด ์ข ๋ฃ๋๋ ์์ ์ unregister ์ฝ๋๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
๋ฐ์ํ'๐ฐ Android ๐ญ > ๐ ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AOS] Check App Status (Background or Foreground) (0) 2023.06.30 [AOS] Kotlin ์ค์ฝํ ํจ์ (Scope Function) (0) 2023.04.28 [AOS] ์ด๋ฏธ์ง ๋ฌธ์๋ฉ์์ง ์ ์กํ๊ธฐ (0) 2023.04.14 [AOS] Android DeepLink ์ค์ (0) 2022.11.23 [AOS] ForegroundService (0) 2022.11.15