마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

IllegalArgumentException혹시 여기서 문제가 발생할 수도 있나요?

0 추천
fun startAlarmService(alarmType: AlarmService.AlarmType) {
        val intent = Intent(this, AlarmService::class.java)
        intent.putExtra("alarmType" , alarmType)
        startService(intent) 여기에 디버깅 했을 때는 이상이 없는 것 같습니다. 혹시 
    }
}
private fun fire() {
        fire.setOnClickListener {
            if (fire.isChecked) {
                fire.setBackgroundDrawable(resources.getDrawable(R.drawable.clickable))
                startAlarmService(AlarmService.AlarmType.FIRE)
            } else
                fire.setBackgroundDrawable(resources.getDrawable(R.drawable.day_button))
        }
    }
이 함수를 사용했을때 saveInstance = null 이라고 뜨는 데 이건 관련이 없는 건가요?

 

100만 다운로드 (290 포인트) 님이 2022년 6월 22일 질문
100만 다운로드님이 2022년 6월 22일 수정

1개의 답변

0 추천

님 에러는 서비스 클래스 안의 아래 코드에서 발생하는 것 같은데요.

val alarmType = intent?.getSerializalbleExtra("alaramType") ?: throw IllegalArgumentException("AlaramType이 정의되어 있지 않습니다.");  // !!!!

즉, intent 안에 "alarmType"이라는 키로 저장된 AlarmType의 데이터가 존재하지 않거나 null인 상태여서 그렇습니다. 디버깅을 intent를 넘길 때 alarmType을 설정하고 있는지, 서비스에서 받을 때 intent 안에 해당 데이터가 들어있는지 체크하셔야 해요.

spark (224,800 포인트) 님이 2022년 6월 22일 답변
...