๋ชฉ์ฐจ
7/22
- ์์น ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ณผ์ ์์ ๊ฐํ์ ์ผ๋ก null๊ฐ์ด ๋จ๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค
- ์์๋ณธ ๊ฒฐ๊ณผ ์ด๋ ์์น ์์ฒด์์ ์์น ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ด์์ต๋๋ค
- ๋ฐ๋ผ์ ๊ธฐ์กด gps provider๋ฅผ ์ฌ์ฉํ๋ location manager ๋ฐฉ์์์ fused location client ์ฌ์ฉ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํด์ฃผ์์ต๋๋ค
- ๋ํ ๋ ์จ์ ์ํฅ์ผ๋ก ์์น ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์์์ ์๊ฒ๋์ด UI ์ ๋์์ ์งํํด์ฃผ์์ต๋๋ค .
7/23
- ๋ธ๋์น ์ถฉ๋ ํด๊ฒฐ
- ํ์ ๊ณผ์ ์์ ํด๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ ์ฑ์๊ฒ ์์ ํ์๋๋ฐ ์ ๋น๋๊ณผ ์ฝ๋๋ฅผ ํฉ์น๋ ๊ณผ์ ์์ ์ถฉ๋์ด ๋ฐ์ํ์ต๋๋ค
- ๋ฐ๋ผ์ ๊น ๋ ํฌ์งํ ๋ฆฌ์ ๋ฉ์ธ ๋ธ๋์น์์ ์๋ก์ด ๋ธ๋์น๋ฅผ ๋ง๋ ํ ์ต์ ์ฝ๋๋ฅผ ๋จธ์งํ๊ณ ๋ค์ ๋ฉ์ธ ๋ธ๋์น๋ก ํฉ์น๋ ๊ณผ์ ๋ฑ์ผ๋ก ์ถฉ๋์ ํด๊ฒฐํ์์ต๋๋ค
- ๋ฐฐ์ด ์ : ํด๋ ๊ตฌ์กฐ ๋ฑ์ ๋ณํ๊ฐ ์์๋์๋ ํ๋ก์ ํธ ๊ตฌ์ฑ ์ ์ ์ค๊ณํด์ ์งํํ๊ฑฐ๋ ํ์๊ณผ ์์ํด์ ํจ๊ป ์์ ํด์ผํ๋ค๋ ์ ์ ๋ฐฐ์ธ ์ ์์์ต๋๋ค.
- ์์น ๋ฐ์ดํฐ ์ ์ ์๋ ํ์ธ
- ์์น ๋ฐ์ดํฐ๊ฐ ์ธก์ ๋๋ ์ฃผ๊ธฐ๊ฐ ์ ํํ ์ฃผ๊ธฐ์ ๋ง๊ฒ ์ธก์ ๋๋๋ก ๊ตฌํํ์์ต๋๋ค
- ์ด ๋ ์ธํ ํธ์ putExtra๋ฅผ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ๊ตฌํํ์์ต๋๋ค
- 15์ด ์ค์ ํ์ง๋ง ์ธก์ ๋๋ ์ฃผ๊ธฐ๊ฐ 30์ด๋ก ์ง์ฐ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค
- ์์น ๋ฐ์ดํฐ๊ฐ ์ค์ ํ ์๊ฐ(์: 9์ ~ 18์)๋์์๋ง ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ธก์ ๋๋๋ก ํ๊ธฐ
- ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋น์ค๊ฐ ์ํ๋ ์๊ฐ์ ์ข ๋ฃ๋์ง ์๋ ์ด์๊ฐ ๋ฐ์ํ์ต๋๋ค
- ์์๋ณธ ๊ฒฐ๊ณผ alarm manager์์ ๋ฐ๋ณต์ ์ค์ ํ๋ ๊ณผ์ ์ค ์ง์๋์ง ์๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๊ฒ์ด ๋ฌธ์ ์์ต๋๋ค
- ์ด๋ฅผ ์์ ํด์ค์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค
์์ธ ๋ด์ฉ
์ ํ๋ ์ฃผ๊ธฐ์ ๋ฐ๋ผ์ ์์น ์ธก์ ๊ฐ๊ฒฉ ์กฐ์
SelectIntervalActivity ์์
- ๐ค์ฌ์ฉ์๊ฐ ๊ฐ๊ฒฉ ๋ฒํผ ํด๋ฆญ → ๊ฐ์ด ์๋น์ค๋ก ์ ๋ฌ
- ์๋น์ค๋ ์๋น์ค ๊ฐ๊ฒฉ์ ์์ ํ๊ณ ์ด ๊ฐ์ ๋ฐ์ดํฐ ์ธก์ ์ ๋ฐ์ดํธ ๋น๋์ ๋ฐ์
- ์ฃผ๊ธฐ๋ฅผ ์ฌ์ค์ ์ ๊ธฐ์กด ์๋น์ค๋ ์ค๋จํด์ผํ๋???
- ์ฃผ๊ธฐ๋ฅผ ๋ฐ์ํ๋ ค๋ฉด ์๋น์ค ์ค์ง ํ ์ฌ์์ํ๋๋ก ํด์ผํ๋?
- ์ค์งํ์ง ์๊ณ ์ฌ์์ํ๋ฉด ?
- ์ด๋ฏธ ์คํ ์ค์ธ ์๋น์ค์ ๋ํด ๋ค์ startForegroundService ํธ์ถ ์ ์๋น์ค๊ฐ ์์ ํ ๋ค์ ์์๋์ง ์๋๋ค.
- ๊ธฐ์กด ์๋น์ค ์ธ์คํด์ค์ onStartCommand๊ฐ ๋ค์ ํธ์ถ๋๋ค.
- ์ด ๋ ์๋ก์ด Intent์ ํจ๊ป ํธ์ถ๋จ
- ๋ฐ๋ผ์ putExtra๋ฅผ ํตํด ์๋ก ์ถ๊ฐํ interval ๊ฐ์ด ํฌํจ๋จ .
- ์๋ก์ด Intent์ ํจ๊ป ํธ์ถ๋๋ค๋ ๊ฒ์ ์๋ฏธ๋?
- Intent ๊ฐ์ฒด์ ์ญํ :
- Intent๋ ์๋๋ก์ด๋ ์ปดํฌ๋ํธ ๊ฐ ํต์ ์ ์ํ ๋ฉ์์ง ๊ฐ์ฒด์ ๋๋ค.
- ์๋น์ค๋ฅผ ์์ํ ๋ ์ฌ์ฉ๋ Intent์๋ ์ถ๊ฐ ๋ฐ์ดํฐ(extras)๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
- ์๋ก์ด Intent ์์ฑ:
- startForegroundService๋ฅผ ํธ์ถํ ๋๋ง๋ค ์๋ก์ด Intent ๊ฐ์ฒด๊ฐ ์์ฑ๋ฉ๋๋ค.
- ์ด ์ Intent์๋ putExtra๋ก ์ถ๊ฐํ ์ต์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ฉ๋๋ค.
- onStartCommand ํธ์ถ:
- ์์คํ ์ ์ด ์๋ก์ด Intent๋ฅผ onStartCommand ๋ฉ์๋์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํฉ๋๋ค.
- ๋ฐ๋ผ์ onStartCommand๋ ๊ฐ์ฅ ์ต๊ทผ์ ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์ ๊ทผ:
- onStartCommand ๋ด์์ intent?.getIntExtra("interval", defaultValue) ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์๋ก ์ ๋ฌ๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ์ํ ์
๋ฐ์ดํธ:
- ์ด๋ฅผ ํตํด ์๋น์ค๋ ์คํ ์ค์๋ ์๋ก์ด ์ค์ ์ด๋ ๋ช ๋ น์ ๋ฐ์ ๋์์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค
- Intent ๊ฐ์ฒด์ ์ญํ :
- ์ด ๋ ์๋ก์ด Intent์ ํจ๊ป ํธ์ถ๋จ
- โญ์ ํ๋ ์ค์
- ์์น ์ ํ๋์ ๋ฐ๋ผ์ ์ฃผ๊ธฐ์ ๋ง๊ฒ ์์น๊ฐ ์์ ๋์ง ์์ ์ ์์ !
- ๊ตฌํ ๋ฐฉ์ ๊ณ ๋ฏผ
- putExtra
- Intent๋ฅผ ํตํด ์ง์ ๋ฐ์ดํฐ ์ ๋ฌ
- ์ฅ์
- ๊ฐ๋จ & ์ง๊ด ,
- ์ปดํฌ๋ํธ ๊ฐ ์ง์ ํต์ ์ด ๊ฐ๋ฅ
- ๋จ์
- ์๋น์ค๊ฐ ์ด๋ฏธ ์คํ ์ค์ธ ๊ฒฝ์ฐ ์๋ก์ด Intent๋ก ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ชป๋ฐ์ ์๋ ์๋ค.
- ๋ธ๋ก๋์บ์คํธ ๋ฆฌ์๋ฒ
- ์ฅ์
- ์ฌ๋ฌ ์ปดํฌ๋ํธ์์ ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ ์๋ค.
- ์๋น์ค๊ฐ ์ด๋ฏธ ์คํ ์ค์ด์ด๋ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ ์๋ค.
- ๋จ์
- putExtra๋ณด๋ค ๊ตฌํ์ด ์ข ๋ณต์ก
- ์ฅ์
- ๋ฐ์ธ๋ฉ๋ ์๋น์ค
- ์ฅ์
- ์ปดํฌ๋ํธ ๊ฐ ์ง์ ์ ์ด๊ณ ์ง์์ ์ธ ํต์ ๊ฐ๋ฅ
- ์๋น์ค์ ๋ฉ์๋ ์ง์ ํธ์ถ ๊ฐ๋ฅํ์ฌ ๋ณต์กํ ์ํธ์์ฉ ๊ฐ๋ฅ
- ์๋น์ค์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๋ ์ ์ ์ด ๊ฐ๋ฅ
- ๋จ์
- ๊ตฌํ์ด ๋ค์ ๋ณต์ก
- ๋ฐ์ธ๋ฉ , ์ธ๋ฐ์ธ๋ฉ ๊ณผ์ ์ ๊ตฌํํด์ผํจ
- ์กํฐ๋นํฐ, ํ๋๊ทธ๋จผํธ์ ์๋ช ์ฃผ๊ธฐ์ ๋๊ธฐํํด์ผํจ
- ์ฅ์
7/24
- ์ด์ ๋ฐ์ํ๋ ์ด์ ํด๊ฒฐ
- ์์น ์๋น์ค๋ฅผ ์ํ๋ ์๊ฐ ๋์์๋ง ์๋ํ๋๋ก ํ๊ธฐ ์ํด ๋ฌธ์ ์ ์์ธ์ ์์๋ณด์์ต๋๋ค
- ์์ธ์ ์๋น์ค์ ์ข ๋ฃ๊ฐ ์ ์์ ์ผ๋ก ์๋๋์ง ์์ ๊ฒ์ด์์ต๋๋ค
- ์๋น์ค๊ฐ ์ ์ ๋๋ก ์ข ๋ฃ๋์ง ์์๊น ์์๋ณด๋ ๊ธฐ์กด์ ์ฌ์ฉํ๊ณ ์๋ setRepeating์ ํตํด alarm manager์ ๊ตฌํํ ๊ฒ์ด ์์ธ์ด์์ต๋๋ค
- ํด๋น ๋ฉ์๋ ์์ ์ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๊ณ ์ง์ ํ ์๊ฐ๋์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ฅผ ์ํํ๋๋ฐ ์ฑ๊ณตํ์์ต๋๋ค!
์์ธ ๋ด์ฉ
์๋น์ค ์ข ๋ฃ ์๋
binding.btnStop.setOnClickListener {
Intent(applicationContext, LocationForegroundService::class.java).also { intent ->
stopService(intent)
}
binding.btnStop.setOnClickListener {
Intent(applicationContext, LocationForegroundService::class.java).also { intent ->
intent.action = "STOP_SERVICE"
startService(intent)
}
}
- ๋ฌธ์
- ์์น ์ ๋ฐ์ดํธ๋ ๋ฐ์ํ์ง๋ง ํํ๋ฉด์ผ๋ก ์ ๋ฌ๋์ง ์๋๋ค.
- ํด๊ฒฐ
// ๊ธฐ์กด
alarmManager.setRepeating(
AlarmManager.RTC_WAKEUP,
startCalendar.timeInMillis,
AlarmManager.INTERVAL_DAY,
startPendingIntent
)
// ์์
alarmManager.setExactAndAllowWhileIdle(
AlarmManager.RTC_WAKEUP,
stopCalendar.timeInMillis,
stopPendingIntent
)
๋ฌธ์ ์์ธ
- ์๋์ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ ๋ ์ฌ์ฉํ ํจ์๋ก ์ธํ ๊ฒ!
- setRepeating๊ณผ setExactAndAllowWhileIdle์ ๊ตฌ๋ถํด๋ณด์
- ๊ธฐ์กด์๋ setRepeating์ ์ฌ์ฉ
- ์์ ํ ์ฝ๋ setExactAndAllowWhileIdle
7/25
์๊ฐ ์ค์
์๊ฐ ์ค์ ๋ฐ๋ก ์ํ ๊ฒฝ์ฐ & ์ฒ์ ์์ ์ : ๊ธฐ๋ณธ ์๊ฐ 9์~18์์ผ๋ก ์ ์ฉ
๋ง์ฝ ์๊ฐ์ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ ํด๋น ์๊ฐ์ผ๋ก ์๋น์ค ์๊ฐ ๋ณ๊ฒฝ
์์ ์๊ฐ ์ค์ ํ๋ฉด
- ์๊ฐ ์ค์
- ๋ค์ ๋ฒํผ ํด๋ฆญ
- ์์ ์๊ฐ์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ ๋ฌ
- ์ข ๋ฃ ์๊ฐ ์ค์ ํ๋ฉด์ผ๋ก ์ด๋
์ข ๋ฃ ์๊ฐ ์ค์ ํ๋ฉด
- ์๋ฃ ๋ฒํผ ํด๋ฆญ
- ์ข ๋ฃ ์๊ฐ์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ ๋ฌ
- ๊ด๋ฆฌ์ ์ค์ ํ๋ฉด์ผ๋ก ์ด๋
7/26
์ง์ ๋ ์๊ฐ๋์ ์ผ์ ๋ฐ์ดํฐ ์ธก์ ๊ตฌํ
๋ด์ฉ
- ์์ ์๊ฐ ์ค์ ํ๋ฉด , ์ข ๋ฃ ์๊ฐ ์ค์ ํ๋ฉด ์์ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ServiceScheduler ํด๋์ค๋ก ์ ๋ฌํด์
- ํด๋น ์๊ฐ์ ํตํด alarm manager๋ก ๋ฐฑ๊ทธ๋ผ์ด๋๋ฅผ ๋์ํ ์๊ฐ์ ๋ฑ๋กํด์ฃผ์์ด์
๋์ ๊ฒฐ๊ณผ
- ์์ ์๊ฐ ์ค์ ํ๋ฉด๊ณผ ์ข ๋ฃ ์๊ฐ ์ค์ ํ๋ฉด์ ํตํด ์ธก์ ์๊ฐ ์ ํ๊ธฐ
- ํด๋น ์๊ฐ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋น์ค ์์ ๋ฐ ์ข ๋ฃํ๊ธฐ
- ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋น์ค๊ฐ ๋์ํ๋ ๋์ ์ฃผ๊ธฐ๋ง๋ค ์ธก์ ๋๋ ๋ฐ์ดํฐ ํ์ธ
๋น์ฝ ๋ฐ์ดํฐ ์ธก์ ๊ฐ๊ฒฉ ์กฐ์
java.lang.IllegalStateException: schedule()/enqueue() called more than 250 times in the past 60000ms. See the documentation for more information. java.lang.IllegalStateException: schedule()/enqueue() called more than 250 times in the past 60000ms. See the documentation for more information
์งง์ ์๊ฐ ๋์ ๋๋ฌด ๋ง์ ์์ ์ ์์ฝํ๋ ค๊ณ ํ ๋ ๋ํ๋๋ ์๋ฌ์ด๋ค.
60์ด(60000ms) ๋์ 250๋ฒ ์ด์ ์์ ์ ์ค์ผ์ค๋งํ๊ฑฐ๋ ๋๊ธฐ์ด์ ์ถ๊ฐํ๋ ค๊ณ ์๋ํ๋ค๋ ์๋ฏธ!
ํด๊ฒฐ
- ๋น์ฝ ์ธก์ ์ฃผ๊ธฐ๋ฅผ ์กฐ์ ํ์
- ์๋ ์ฝ๋๋ฅผ intent action์ด “START_SERVICE์ธ ๊ฒฝ์ฐ ์ฝ๋์ ํฌํจ์์ผ์ฃผ์๋ค.
// ๋น์ฝ ์ค์บ ๊ฐ๊ฒฉ ์กฐ์ : 5์ด
beaconManager.foregroundScanPeriod = 5000L
beaconManager.foregroundBetweenScanPeriod = 0L
beaconManager.updateScanPeriods()
beaconManager.bind(this)
728x90
'๐ค2024 ์๋๋ก์ด๋ > โ๏ธ ํ๊ณ ์ธํด ๊ฐ๋ฐ ํ๋ก์ ํธ ๊ธฐ๋ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
6์ฃผ์ฐจ ๊ฐ๋ฐ์ผ์ง (0) | 2024.12.17 |
---|---|
5์ฃผ์ฐจ ๊ฐ๋ฐ์ผ์ง (0) | 2024.12.17 |
3์ฃผ์ฐจ ๊ฐ๋ฐ์ผ์ง (0) | 2024.12.17 |
2์ฃผ์ฐจ ๊ฐ๋ฐ์ผ์ง (0) | 2024.12.17 |
1์ฃผ์ฐจ ๊ฐ๋ฐ์ผ์ง (0) | 2024.12.17 |