본문 바로가기

안드로이드

(45)
[안드로이드] BroadCast Receiver 안드로이드 4대 컴포넌트 중 하나인 브로드캐스트 리시버는 어떠한 이벤트가 발생되었을 때 그에 관한 메시지를 받을 수 있게 한다. 예를 들면 기기 재부팅, 핸드폰 충전 등 시스템 이벤트가 발생했을 경우 브로트캐스트를 전송하며, 이를 수신하여 작업을 처리할 수 있다. 이외의 자세한 내용은 공식문서를 참고 바랍니다. https://developer.android.com/guide/components/broadcasts?hl=ko#receiving-broadcasts 브로드캐스트 개요 | Android 개발자 | Android Developers 브로드캐스트 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 앱은 Android 시스템 및 기타 Android 앱에서..
[안드로이드] Alarm Manager Alarm Manager란 말 그대로 설정한 시간에 설정한 작업을 수행할 수 있는 기능이다. 즉, 특정 시간에 앱을 사용하지 않아도 어떠한 작업을 할 수 있게 해주는 기능이며 특징은 다음과 같다. 지정된 시간에 또는 정해진 간격으로 인텐트를 실행 Broadcast receiver와 함께 알람을 사용하여 서비스를 시작하고 다른 작업을 실행할 수 있다. 애플리케이션 외부에서 작동하므로 알람을 사용하면 앱이 실행 중이 아니거나 기기가 대기 상태인 경우에도 이벤트나 작업을 트리거할 수 있다. 알람은 앱의 리소스 요구사항을 최소화하는 데 도움이 됩니다. 타이머 또는 계속 실행 중인 백그라운드 서비스를 사용하지 않고 작업을 예약할 수 있다. 이외의 권장사항 또는 장단점은 공식문서를 참고 바랍니다. https://d..
[안드로이드] RecyclerView Click Event RecyclerView 목록 클릭 이벤트의 방법은 두 가지가 있다. 첫 번째는 Adapter 내부에서 setOnClickEvent를 이용하는 것 두 번째는 인터페이스를 이용하는 것이다. 인터페이스를 이용하면 Adapter가 아닌 Activity 또는 Fragment에서 이벤트에 대한 작업을 실행할 수 있다. Adapter interface OnItemClickListener { fun onItemClicked(data: String?) } // OnItemClickListener 참조 변수 선언 private var itemClickListener: OnItemClickListener? = null // OnItemClickListener 전달 메소드 fun setOnItemClickListener(li..
[안드로이드] SharedPreferences 정보 또는 데이터를 앱 자체에 저장하는 인터페이스다. 이는 데이터베이스와는 다르며 Key & Value 값으로 저장된다. 주로 앱 환경설정에 사용된다. 사용 방법 MyApplication.kt SharedPreferences는 context를 필요로 한다. 따라서 어디서든 불러 사용할 수 있도록 MyApplication에서 호출한다. class MyApplication : Application() { companion object { lateinit var prefs: PreferenceUtil } override fun onCreate() { prefs = PreferenceUtil(applicationContext) super.onCreate() } } preferenceUtil.kt class Pr..
[안드로이드] Navigation Component build.gradle implementation "androidx.navigation:navigation-fragment-ktx:2.5.3" implementation "androidx.navigation:navigation-ui-ktx:2.5.3" res -> new -> resource file navigation.xml res -> new -> resource file bottom_nav.xml
[안드로이드] MyApplication Toast 메시지, dialog 등 context가 필요한 기능들이 있다. 이때 어디서든 context를 가져와 쓸 수 있고, 앱 실행 시 실행시켜줘야 되는 기능들이 있다면 MyApplication에 넣어 실행과 동시에 초기화 시켜줄 수도 있다. MyApplication Class는 Application 클래스를 상속받는다. class MyApplication : Application() { companion object { lateinit var prefs: PreferenceUtil private lateinit var myApplication: MyApplication fun getInstance() : MyApplication = myApplication } override fun onCreate..
[안드로이드] 백그라운드에서 위치 데이터 지속적으로 얻기 https://stackoverflow.com/questions/28535703/best-way-to-get-user-gps-location-in-background-in-android Best way to get user GPS location in background in Android In my android app i want to get user current location every few minute interval and update in to my center server using web service. Currently i am using Fused Location Provide for get user current stackoverflow.com 해당 코드는 위의 StackOver..
[안드로이드] Api Key 저장 방법 with local.properties 프로젝트를 하다 보면 Api를 사용하게 되는데 Api에는 Key가 필요하다. 그러나 이 Key를 그냥 복붙 후 Git에 올려버리면 누군가 해당 Key를 사용할 수 있고, 최악의 경우 막대한 금전적 손실을 입을 수 있다. Key 같이 중요한 데이터는 숨겨야하는데 Git에는 gitignore가 있고, 여기에는 local.properties가 자동으로 설정되어 있다. 따라서, local.properties 에 Key를 저장해 두고 프로젝트에서 갖다 쓰면 된다. 사용 방법 local.properties ## This file is automatically generated by Android Studio. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! #..
[안드로이드] Jetpack 공식문서 https://developer.android.com/jetpack?hl=ko Android Jetpack 개발자 리소스 - Android 개발자 | Android Developers Android Jetpack은 코드 라이브러리 모음을 통해 최신 앱 개발자 리소스와 권장사항을 제공합니다. 지금 Jetpack을 사용하여 시작해 보세요. developer.android.com Jetpack 이란? Jetpack은 개발자가 중요한 코드에 집중할 수 있도록 권장사항 준수, 상용구 코드 감소, 여러 Android 버전과 기기에서 일관되게 작동하는 코드 작성을 돕는 라이브러리 묶음이다. 또한 다양한 안드로이드 버전과 호환되도록 제작되었기 때문에 여러 버전에서 실행할 수 있다. 그렇다면 Jetpack에는 ..
[안드로이드] ViewModel 1. AAC ViewModel 이란?UI 상태를 저장하고 관리할 수 있는 클래스이점: 상태를 저장하고 Configuration change가 발생해도 유지할 수 있다. Configuration Change 종류화면 회전언어, 글꼴 변경라이트 & 다크 모드 등2. Configuration Change가 발생하면 UI 상태가 사라지는 이유안드로이드에서 Configuration Change가 발생하면 생명주기만 반복되는 것이 아닌 Activity 클래스 자체를 파괴하고 다시 생성한다.위의 사진이 화면을 회전했을 때의 Activity와 ViewModel의 생명 주기를 나타낸 Log인데 보면 알 수 있듯이 onResume 상태에서 화면 회전이 일어날 경우 onDestroy 이후 다시 Activity를 새로 만들어..