๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿค2024 ์•ˆ๋“œ๋กœ์ด๋“œ/โ˜€๏ธ ํ•˜๊ณ„ ์ธํ„ด ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ ๊ธฐ๋ก

4์ฃผ์ฐจ ๊ฐœ๋ฐœ์ผ์ง€

by hyeonha 2024. 12. 17.

๋ชฉ์ฐจ

    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์™€ ํ•จ๊ป˜ ํ˜ธ์ถœ๋œ๋‹ค๋Š” ๊ฒƒ์˜ ์˜๋ฏธ๋Š”?
            1. Intent ๊ฐ์ฒด์˜ ์—ญํ• :
              • Intent๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ ๋ฉ”์‹œ์ง€ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.
              • ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์‚ฌ์šฉ๋œ Intent์—๋Š” ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ(extras)๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
            2. ์ƒˆ๋กœ์šด Intent ์ƒ์„ฑ:
              • startForegroundService๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด Intent ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
              • ์ด ์ƒˆ Intent์—๋Š” putExtra๋กœ ์ถ”๊ฐ€ํ•œ ์ตœ์‹  ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
            3. onStartCommand ํ˜ธ์ถœ:
              • ์‹œ์Šคํ…œ์€ ์ด ์ƒˆ๋กœ์šด Intent๋ฅผ onStartCommand ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
              • ๋”ฐ๋ผ์„œ onStartCommand๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
            4. ๋ฐ์ดํ„ฐ ์ ‘๊ทผ:
              • onStartCommand ๋‚ด์—์„œ intent?.getIntExtra("interval", defaultValue) ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ƒˆ๋กœ ์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
            5. ์ƒํƒœ ์—…๋ฐ์ดํŠธ:
              • ์ด๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค๋Š” ์‹คํ–‰ ์ค‘์—๋„ ์ƒˆ๋กœ์šด ์„ค์ •์ด๋‚˜ ๋ช…๋ น์„ ๋ฐ›์•„ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
    • โญ์ •ํ™•๋„ ์„ค์ •
      • ์œ„์น˜ ์ •ํ™•๋„์— ๋”ฐ๋ผ์„œ ์ฃผ๊ธฐ์— ๋งž๊ฒŒ ์œ„์น˜๊ฐ€ ์ˆ˜์‹ ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ !
    • ๊ตฌํ˜„ ๋ฐฉ์‹ ๊ณ ๋ฏผ
    • 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