본문 바로가기

Android42

[Android] 안드로이드에서 FLAG_ACTIVITY_REORDER_TO_FRONT 플래그를 활용한 효율적인 액티비티 관리 안드로이드에서 Intent와 함께 사용되는 Flag는 액티비티나 서비스 등의 컴포넌트를 시작할 때 시스템에게 어떻게 해당 컴포넌트를 관리해야 하는지에 대한 추가적인 지시를 제공한다. 이러한 Flag들은 주로 액티비티의 태스크와 백스택 관리에 관련된 동작을 정의하는데 사용된다. Intent Flag 사용 방법: Intent 객체에 Flag를 설정하는 방법은 간단하다. Intent 객체를 생성한 후, setFlags() 메서드나 addFlags() 메서드를 사용하여 flag를 추가할 수 있다. Intent intent = new Intent(context, TargetActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startA.. 2024. 4. 8.
[Android] 안드로이드에서 BroadcastReceiver 활용하기: 정적 및 동적 등록과 명시적 vs 암시적 브로드캐스트 전송 이해하기 안드로이드에서 BroadcastReceiver를 이용한 명시적 및 암시적 브로드캐스트 전송과 수신에 대해 정리 해 두고자 한다.BroadcastReceiver는 안드로이드에서 중요한 역할을 하는 컴포넌트로, 애플리케이션에서 다양한 시스템 이벤트를 감지하고 반응할 수 있게 해준다.정적 및 동적 등록 방법을 이해하고, 명시적 및 암시적 브로드캐스트 전송 방법을 알고 있으면 안드로이드 애플리케이션 개발에 있어 더 효율적으로 BroadcastReceiver를 활용할 수 있다.BroadcastReceiver란?BroadcastReceiver는 안드로이드 애플리케이션 구성 요소 중 하나로, 시스템이나 애플리케이션에서 발생하는 다양한 이벤트나 정보를 수신할 수 있는 기능을 제공한다. 예를 들어, 네트워크 상태 변경,.. 2024. 4. 5.
[Android] 안드로이드에서 WindowManager를 활용하여 윈도우 위치 최상단으로 설정하기 안드로이드 애플리케이션 개발에서 윈도우매니저를 활용하여 특정 뷰 또는 윈도우를 화면의 최상단에 위치시키는 방법에 대해 정리 해 두고자 한다.이 기능은 다양한 상황에서 유용하게 사용될 수 있으며, 특히 사용자와의 인터랙션이 중요한 앱을 개발할 때 필수적인 요소가 될 수 있다. WindowManager란?WindowManager는 안드로이드 시스템에서 윈도우(액티비티, 다이얼로그 등)를 관리하는 역할을 한다.이를 통해 애플리케이션은 이 서비스를 사용하여 애플리케이션은 윈도우를 생성하고 윈도우의 크기, 위치, 표시 방식 등을 조정할 수 있게 되며, 윈도우를 화면에 추가하거나 제거할 수 있다. WindowManager는 주로 다음과 같은 작업을 수행하는 데 사용된다.윈도우 추가: 애플리케이션은 WindowMan.. 2024. 4. 4.
[Kotlin, Java] Kotlin과 Java의 문법적 차이와 각 언어의 특징을 가위, 바위, 보 게임을 예시로 알아보기 Java 코드 package eu.tutorials.rockpaperscissors; import java.util.Scanner; import java.util.Random; public class Main { public static void main(String[] args) { String computerChoice = ""; String playerChoice = ""; System.out.println("Rock, Paper or Scissors? Enter your choice"); Scanner scanner = new Scanner(System.in); playerChoice = scanner.nextLine(); Random rand = new Random(); int randomNum.. 2024. 4. 2.
[Kotlin] Kotlin에서 '..' 연산자로 더 쉽고 간결하게 범위 다루기 Kotlin에서 Ranges는 두 값 사이의 모든 값을 나타내는 방법이다. 범위를 사용하면 특정 범위 내의 값들을 쉽게 반복하거나 검사할 수 있다. Kotlin은 이를 위해 특별한 연산자 '..'를 제공한다. 또한, Ranges를 사용하는 것은 코드를 더욱 읽기 쉽고 간결하게 만들어 준다. 사용법 Range 생성: '..' 연산자를 사용하여 Range를 생성할 수 있습니다. 예를 들어, 1부터 5까지의 범위는 1..5로 표현된다. val range: IntRange = 1..5 2. Range를 사용한 반복: for 반복문과 함께 Range를 사용하여 특정 범위 내의 값들을 반복할 수 있다. for (i in 1..5) { println(i) } 3. Range 검사: in 연산자를 사용하여 어떤 값이 .. 2024. 4. 2.
[Java] 오버로딩과 오버라이딩: 객체 지향 프로그래밍에서의 메소드 다형성 이해하기 이슈 수정을 위해 생성자 오버로딩을 사용할 필요가 생겼다. 이를 잊지 않기 위해 오버로딩에 대해 정리하려고 한다. 그 과정에서 오버라이딩과의 비교가 자주 나오기 때문에, 이 두 개념을 함께 정리하고자 한다. 오버로딩과 오버라이딩은 비록 서로 다른 목적과 작동 방식을 가지고 있지만, 이들은 메소드 재정의의 중요한 형태로, 객체 지향 프로그래밍에서 메소드의 다형성을 구현하는 데 필수적인 기술이다. 오버로딩(Overloading) 오버로딩은 메서드 오버로딩과 생성자 오버로딩 두가지 형태로 나뉜다. 오버로딩은 같은 이름을 가진 메소드나 생성자를 여러 개 정의할 수 있게 하며, 매개변수의 타입, 개수, 순서에 따라 구분된다. 이를 통해 메소드나 생성자에 다양한 입력을 처리할 수 있는 유연성을 제공한다. 1. 메소.. 2024. 4. 2.
[Android] ItemTouchHelper.Callback으로 리사이클러뷰 아이템을 마스터하는 방법: 주요 오버라이드 메서드와 그 역할 ItemTouchHelper.Callback 클래스를 사용하면서 clearView 기능을 통해 드래그 앤 드롭 작업의 종료 시점을 감지할 수 있다는 것을 알게 되었다. 이 과정에서 ItemTouchHelper.Callback 클래스에는 clearView 외에도 다양한 유용한 오버라이드(Override) 메서드들이 있다는 것을 발견했다. 이러한 메서드들을 정리하여 기록해 두고자 한다. ItemTouchHelper.Callback 클래스는 리사이클러뷰의 아이템을 드래그 앤 드롭하거나 스와이프할 때 사용자 정의 동작을 구현할 수 있도록 해주는 중요한 클래스이다.이 클래스를 통해 다음과 같은 여러 메서드들을 오버라이드할 수 있다. isLongPressDragEnabled() 역할: 길게 눌러서 드래그를 시작할 .. 2024. 4. 1.
[ Java ] 인터페이스(interface)의 핵심 이해: 주요 특징과 사용 예시 public interface ItemTouchHelperExListener { void onItemMoveCompleted(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder); } 인터페이스는 자바에서 매우 중요한 개념 중 하나로서, 자바 프로그래밍에서 객체 간의 상호작용을 위한 중요한 수단으로 사용된다. 객체가 어떤 메소드를 가지고 있어야 할 지를 정의 하지만, 이 메소드들이 어떻게 구현되어야 하는 지는 정의하지 않는다. 인터페이스는 오로지 추상 메소드(구현부가 없는 메소드)와 상수만을 멤버로 가질 수 있다. 인터페이스의 주요 특징 1. 추상 메소드 : 인터페이스 내의 모든 메소드는 기본적으로 추상 메소드이다. 즉, 메소드의 선언만 있고 구.. 2024. 4. 1.
[ Android ] Android에서 Selector 사용 시 상태 정의 순서의 중요성 이해하기 Android에서 selector를 사용하는 것은 버튼이나 뷰의 다양한 상태(예: 선택됨, 클릭됨, 포커스됨 등)에 따라 다른 그래픽이나 색상을 표시할 수 있게 해 주는 유용한 기능이다. selector는 XML 파일로 정의되며, 태그 내에 여러 태그를 사용하여 각 상태에 대한 디자인을 지정하고, 각 태그는 특정 상태에 대응하는 그래픽 리소스를 지정한다. 오늘 기록 해 두고 싶은 내용은 selector를 사용할 때 상태 정의 순서의 중요성에 관한 것 이다. 평소에는 selector를 만들고 사용하는 데 큰 신경을 쓰지 않았었는데, 평소와 같이 버튼의 selector를 만들고 테스트를 해보니, selected와 enabled의 상태가 전혀 적용되지 않는 문제에 직면했다. 코드를 아무리 살펴봐도 문제가 없어.. 2024. 3. 26.