본문 바로가기

프로그래밍238

[Android] 원하는시간에 특정작업 하기 (Alarm Manager) 1. 요약 결과 이번 글에서는 AlarmManager를 사용하여 Alarm을 정의하고 등록하는 방법에 관하여 기술한다. AlarmManager를 통하여 Alarm을 등록하면 특정 시간에 Alarm을 발생하도록 할 수도 있으며, 지정한 시간 간격만큼 반복하여 Alarm을 반복하여 발생시키도록 할 수도 있다. 이 Alarm을 가장 많이 활용하는 예로 들자면 알림(Notification)이다. Notification 단, Alarm 자체는 지정한 시간을 기준으로 Alarm을 발생시키기만 할 뿐 발생하였을 때 어떤 기능을 동작할지는 별도로 구현해야 한다. 따라서 AlarmManager를 사용하여 지정한 시간에 Alarm이 발생할 때 알림(Notification)이 동작하도록 정의해주면 흔히 우리가 알고 있는 알.. 2023. 11. 27.
[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.