본문 바로가기

Android/Skill6

Android Foreground Service 미디어 플레이어 Style 적용하기 Android에서 서비스는 총 3가지의 유형으로 나뉩니다. Foreground Background 바인드 그 중에서 미디어 플레이어로 오디오를 play시 오디오 트랙을 유저에게 노출시키기 위해 사용되는 Foreground Service를 사용해보겠습니다. Foreground Service는 필수적으로 Notification을 만들어 주어야 하며, 이때 Notification에서 기본 제공하는 미디어 플레이어 스타일을 적용한 예시입니다. Android Service를 startService()를 호출 할 때마다 서비스가 생성되는 것은 아니지만 onStartCommand()함수는 계속해서 호출됩니다. 해당 부분을 활용하여 intent 의 action값을 던짐으로써 Notification의 아이콘 버튼에 대한.. 2023. 1. 18.
Android Kotlin Toolbar 메뉴 생성하기 먼저 Toolbar에 메뉴를 설정하기 위해서 Menu 레이아웃을 만들기 위해 XML을 통해 main_menu resource file을 구성한다. 메인 액티비티에서 툴바를 setSupportActionBar()를 통해 액션바로 설정해주고 onCreateOptionsMenu()를 통해 메뉴 레이아웃을 연결해주고 onOptionsItemSelected() 를 통해 클릭 핸들링을 할 수 있다. private fun initViews() { binding.toolbar.apply { title = "타이틀" setSupportActionBar(this) } } override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu... 2023. 1. 16.
Android Kotlin Timer Thread(타이머를 쉽게 만드는 방법) Kotlin에서는 Timer를 쉽게 구성하기 위한 스레드를 제공합니다. 바로 kotlin.concurrent.timer 인데요. initialDelay, period 값을 지정하여 타이머의 동작을 핸들링 할 수 있다는 특징을 가지고 있습니다. 아래의 코드는 예시 코드입니다. import kotlin.concurrent.timer class MainActivity : AppCompatActivity() { private var countDownSecond = 10 private var currentDeciSecond = 0 private var timer:Timer? = null override fun onCreate(savedInstanceState: Bundle?) { ... start() } priv.. 2023. 1. 13.
Android(kotlin) Room DB 사용법 Room DB란 이전 안드로이드에서 쓰던 SQLite를 anotation을 통해 보다 쉽게 DataBase에 접근 할 수 있는 Skill이다. 크게 데이터베이스 클래스, 데이터 클래스, DAO로 이루어져있다. 오늘 포스팅에서는 간단하게 Database를 초기화하고 해당 instance를 NonNull하게 반환하는 방법에 대해서 포스팅하겠다. @Database(entities = [Word::class], version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun wordDao():WordDao companion object { private var appDatabase: AppDatabase? = null fun getInstance(.. 2023. 1. 2.