본문 바로가기

전체 글415

[Android] SQLite 날짜 비교 sqlite는 date type이 존재하지않아 날짜 비교를 할 때 다음과 같이 지정해야 한다. 테이블 생성 CREATE TABLE `test` ( `starttime` TEXT, `endtime` TEXT ) strftime() 함수는 날짜를 첫 번째 파라미터에 정의된 형식으로 변형하여 반환하여 준다. 해당 파라미터의 정의할 수 있는 format 리스트는 다음과 같다. 위의 파라미터를 사용해서 원하는 형식으로 변형을 하여 날짜비교에 사용한다. 위의 테이블에서 날짜비교하기위해서 다음과 같이 사용한다. select * from test where CAST(strftime('%s', starttime) AS integer ) > CAST(strftime('%s', '2017-05-27') AS integer).. 2023. 11. 24.
[Android] Calendar를 이용해 특정시간에 푸시알림 보내기 아래 코드를 쓰면 10초 후에 아래 에러가 나온다 해결방법 찾는중.. E/AndroidRuntime: FATAL EXCEPTION: main Process: com.appname, PID: 8806 android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{887a7c0 u0 com.mygym/.common.alarm.EndMembershipService} at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1945) at android.os.Handler.dispatch.. 2023. 11. 24.
[Android] AlarmManager AlarmManager AlarmManager는 특정한 시간과 주기로 Intent를 실행하는 기능을 제공한다. 예를 들어, 정해진 시간에 사용자에게 Notification을 보내려고 할 때 AlarmManager를 활용할 수 있다. 원하는 시간에 AlarmManager를 통해 broadcast를 전송하도록 구현하고, 그 broadcast를 받은 receiver는 Notification을 발행하도록 구현하면 된다. 자세한 방법은 다음 포스팅으로 업로드할 예정이다. 이 포스팅에서는 AlarmManager의 특징과 장단점, 구현 방법 등에 대해서 알아보자. 특징 지정된 시간과 간격으로 Intent를 실행한다. 애플리케이션 외부에서 작동한다. 따라서 앱을 실행하고 있지 않을 때나 Doze 모드인 경우(Doze .. 2023. 11. 24.
[Android] 푸시알림 구현 class 클래스명 : AppCompatActivity() { private lateinit var binding: 바인딩 lateinit var builder: NotificationCompat.Builder lateinit var manager: NotificationManager //오레오 이상은 반드시 채널을 설정해줘야 Notification이 작동함 private val CHANNEL_ID = "channel1" private val CHANNEL_NAME = "Channel1" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = 바인딩.inflate(layoutInflat.. 2023. 11. 23.
[Android] ProgressBar 구현 이번 포스팅에서는 커스텀 프로그레스바를 만들텐데 대기시간이 필요할때 주로 사용되는 로딩창을 프로그레스바로 구현해보도록 하겠습니다. 먼저 새로운 프로젝트를 생성합니다. 템플릿은 아무것도 없는 Empty Activity를 선택했습니다. 프로젝트 이름주시고 최소 SDK는 API24:Android7.0으로 했습니다. 처음 프로젝트를 생성하면 MainActivity와 activity_main.xml 파일이 기본으로 만들어집니다. 그럼 먼저 로딩창을 테스트하기 위한 버튼을 보여주기 위해 activity_main.xml에 아래와 같이 코딩합니다. 그리고 MainActivity를 코딩하기 전에 팝업으로 뜰 로딩창을 먼저 만들어 줍니다. 로딩창을 위한 새로운 자바 클래스파일을 추가합니다. ProgressDialog에 아.. 2023. 11. 22.
[Android] Room 다른 참고할만한 링크 : https://math-coding.tistory.com/247 [Android] Room 이해 및 활용 Room이란? SNS를 사용하는 중에 네트워크 연결이 끊어졌을 때 새로운 사진들이 로딩 중이고 이전에 봤던 사진들은 계속 보이는 것을 경험해 본적이 다들 있을 것입니다. 이를 데이터 캐싱이라고 math-coding.tistory.com 🤔 내부 DB란 무엇인가? 안드로이드에서는 앱의 데이터를 효율적으로 관리하기 위한 저장소로 SQLite라는 데이터베이스를 제공하고 있습니다. 이는 다른 외부 DB들과 달리 소규모 데이터를 관리하고 사용하는데 적합한 관계형 데이터베이스입니다. 적은 데이터를 관리하는데 최적화된 만큼 속도가 빠르고 가볍다는 장점이 존재하여 현시점의 많은 애플리케이션.. 2023. 11. 21.