본문 바로가기

Programming/Android

(6)
[Android][Error] java.lang.IllegalStateException: Not allowed to start service Intent startService() 이 코드에서 에러가 났다. 개발자 문서를 보면 아래와 같은 설명이 있다. developer.android.com/about/versions/oreo/background?hl=ko#services 백그라운드 실행 제한 | Android 개발자 | Android Developers Android 8.0 이상을 대상으로 하는 앱에 대한 새로운 백그라운드 제한. developer.android.com - 앱이 백그라운드에 있는 동안 포그라운드 서비스를 생성해야 하는 경우, startService() 대신 startForegroundService() 메서드를 사용하세요. - 사용자가 인지할 수 있는 서비스의 경우에는 포그라운드 서비스로 만들어야 합니다. 예를 들어, 오디오를 재생하는 서..
[Android][Error] MutableLiveData의 setValue와 postValue의 차이 (IllegalStateException: Cannot invoke setValue on a background thread) 공통점 - MutableLiveData의 값을 변경시킬 수 있는 메소드 차이점 setValue() - 값을 set하는 메소드이다. livedata를 구독하고 있는 액티브한 옵저버가 있을 때 setValue()로 값을 변경해주면 옵저버에게 전달(dispatch)된다. - 메인 스레드에서 호출되어야 한다. postValue() - setValue처럼 값을 바로 set하지 않고 주어진 값을 set하라는 task를 메인스레드에게 전달해준다. - 백그라운드에서 진행된다. - 따라서 postValue한 다음 바로 getValue를 호출할 경우 변경된 값을 받아오지 못할 수도 있다. developer.android.com/reference/androidx/lifecycle/MutableLiveData#postValu..
[Android] NDK를 이용하여 C/C++ 를 추가 2020 네이버 테크 콘서트 강의를 요약 정리해 보았다. # NDK란? - JNI를 이용하여 안드로이드에서 네이티브 코드를 구동할 수 있게 해주는 development kit - 다양한 아키텍처에 대한 cross compiler를 가능하도록 하는 것이 핵심 기능 - 이외에도 안드로이드 SDK를 지원하기 위한 시스템 헤더 및 라이브러리 제공 # NDK 사용하는 이유 - 성능 - 딥러닝 추론, 이미지 처리 등 높은 성능을 필요로 하는 경우 - 딥러닝 프레임워크는 NDK 사용하여 빌드 (tf-lite, onnxRuntime) - 코드 재사용 - C++모듈을 aOS iOS 동시 사용 가능 - 하드웨어 제어 # NDK 단점 - 이식성 결여) 언제나 모든 플랫폼에서 사용 가능한지를 체크해야 한다 - 안정성 결여) ..
[Android] 객체를 인텐트로 전달하는 방법 1. 데이터 클래스가 Serializable 인터페이스를 상속받도록 한다. 2. 액티비티A에서 putExtra 사용 3. 액티비티B에서 getSerializableExtra 사용후 해당 데이터 클래스로 캐스팅 val people = intent.getSerializableExtra(EXTRA_PEOPLE) as? People https://stackoverflow.com/questions/47593205/how-to-pass-custom-object-via-intent-in-kotlin
[Android] 다이얼로그 커스텀 사이즈 val dialogFragment = CustomDialog(this) dialogFragment.show(supportFragmentManager, "dialog") this.supportFragmentManager.executePendingTransactions() val dialog = dialogFragment.dialog val window = dialog?.window val metrics = resources.displayMetrics val width = metrics.widthPixels val height = metrics.heightPixels window?.setLayout(width*90/100, WindowManager.LayoutParams.WRAP_CONTENT) dialog..
[Android][Error] Unable to resolve host “<url here>”; No address associated with hostname- appeared. Retrofit으로 통신하려고 하는데 다음과 같은 에러 메시지가 나타났다. Unable to resolve host “”; No address associated with hostname- appeared. No address라길래 베이스 주소가 잘못되었나하고 체크해보았는데 인터넷 연결 문제라고 한다. 해결: 1. manifest 파일에 Internet 허용 2. 기기의 와이파이 연결 확인 2번으로 해결함! 출처: https://stackoverflow.com/questions/6355498/unable-to-resolve-host-url-here-no-address-associated-with-hostname