728x90 반응형 안드로이드10 안드로이드에서 startService, startForegroundService 사용과 중복 실행 방지를 예제로 설명 안드로이드에서 startService 및 startForegroundService 메서드는 서비스를 시작하는 데 사용되는 메서드입니다. 이 두 메서드의 차이점은 Android 8.0 (Oreo)부터 도입된 백그라운드 실행 제한에 있습니다. startService: 서비스를 시작하며, 서비스가 시작된 후에 해당 서비스가 백그라운드에서 실행되는 한 시스템이 종료시키지 않습니다. 그러나 이 메서드를 사용하면 서비스가 포그라운드 서비스로 시작되지 않으므로, 서비스가 백그라운드에서 실행 중이더라도 일정 시간이 지나면 시스템에 의해 종료될 수 있습니다. startForegroundService: Android 8.0 이상에서 도입된 메서드로, 포그라운드 서비스로 서비스를 시작합니다. 포그라운드 서비스는 사용자에게 .. 2023. 12. 8. [Java] 안드로이드에서 크롬캐스트 연결 시 "전송 대상" 선택 후 앱 죽는 현상에 대한 해결 방법 안드로이드에서 크롬캐스트 연결 시 "전송 대상" 선택 후 앱 죽는 현상 디버깅을 해 보니 아래와 같은 에러 메시지가 보입니다. java.lang.IllegalArgumentException: com.kiwidisk.android: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if i.. 2023. 6. 27. [Java] 안드로이드 서비스에서 Local Notification 보내기 build.gradle 종속성에 추가 dependencies { implementation 'com.android.support:support-compat:28.0.0' } Notification 채널 생성: Android 8.0 (API 레벨 26)부터 알림 채널을 사용해야 합니다. Application 클래스 또는 액티비티에서 아래의 코드를 사용하여 채널을 생성합니다. import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.Context; import android.os.Build; public class NotificationUtils { public static fina.. 2023. 6. 26. [Java] 안드로이드 Activity와 Forground Service에서 위치 값 가져오기 Activity에서 위치 값 가져오기 AndroidManifest.xml 멤버 변수로 설정 double mLatitude = 0; double mLongitude = 0; private FusedLocationProviderClient fusedLocationProviderClient; onCreate에서 fusedLocationProviderClient 초기화 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fusedLocationProviderClient = LocationServices.getFused.. 2023. 6. 26. [Java] 안드로이드에서 싱글톤(Singleton) 클래스와 사용법 예제 싱글톤 클래스는 애플리케이션 전체에서 단일 인스턴스를 유지하고 다른 클래스들이 이 인스턴스에 접근할 수 있도록 하는 디자인 패턴입니다. 이를 통해 객체의 중복 생성을 방지하고, 전역적인 상태나 리소스에 접근하기 편리한 장점을 제공할 수 있습니다. public class MySingleton { private static MySingleton instance; // private 생성자로 외부에서의 인스턴스 생성 방지 private MySingleton() { // 초기화 코드 작성 } // 인스턴스 반환 메서드 public static MySingleton getInstance() { if (instance == null) { // 인스턴스가 없는 경우에만 생성 synchronized (MySinglet.. 2023. 6. 26. android studio refactor를 이용해서 패키지명을 바꾸었을 때 R 인식을 못하는 이유는? 해결 방법은? Android Studio에서 패키지 이름을 바꿀 때 R 클래스를 인식하지 못하는 이유는 주로 두 가지입니다. 빌드 오류: 패키지 이름을 변경하면 기존에 생성된 R 클래스의 경로가 변경되어 빌드 시 R 클래스를 찾을 수 없는 오류가 발생할 수 있습니다. Import 문제: 패키지 이름을 변경하면 기존에 사용되던 import 문이 잘못된 패키지 경로를 가리키게 되어 R 클래스를 찾을 수 없는 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 따라서 진행할 수 있습니다. Build → Clean Project를 실행하여 빌드 캐시를 제거합니다. 이렇게 하면 이전에 생성된 R 클래스가 제거됩니다. Refactor 기능을 사용하여 패키지 이름을 변경합니다. 이를 통해 모든 클래스 파일과 패키지 .. 2023. 6. 26. 이전 1 2 다음 728x90 반응형