일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- provider
- erdcloud
- cloudmessage
- AWS
- socket.io
- BLUETOOTH
- DevExpress
- 채팅방구현
- socket통신
- androidstudio
- node.js
- android studio
- PDFViewer
- 서버배포
- 상태관리
- node js
- 계층형 테이블
- 암호화
- ERD툴
- ERDTool
- android pdf viewer
- FCM
- EC2
- firebase
- Serial
- MotionLayout
- 그룹채팅구현
- 개발일지
- Android
- Flutter
- Today
- Total
nueog
[Android Studio] 위치기록 수정 본문
내가 짠 코드이지만 기억이 나지 않을 수 도 있기에 기록을 해본다!
일단 작년부터 회사에서 진행되고 있는 디자인 과제가 있다.
맡은 일은 카카오 Map을 이용하여 충전기 위치를 알려주고, 위험상황일 때 지인이 볼 수 있도록 위치기록을 해주는 것을 개발하는 것이다. 이제 코드가 거의 다 짜여져 가고 있고, 수정사항을 보완하는 과정에 있다.
어제는 위치기록을 수정하는 일이 주어졌는데, 코드를 짠 과정을 여기에 정리해보고자 한다!!
일단 문제사안은 위치기록이 장시간 멈춰있거나? 위치기록을 껐을 때의 경우에서 위치기록 Polyline이 이어진다는 것이었다.
그래서 이 문제를 어떻게 해결할 수 있을까, 고민했다.
1. 위치기록 서비스가 꺼지는 경우가 어떠한 상황일까?
-> 앱이 백그라운드에서 돌고 있을 때 서비스가 계속 돈다. -> 앱을 아예 종료했을 때 (OnDestroy()함수)를 고려한다.
2. 그러면 위경도 데이터는 어떻게 불러와서 해줘야하나?
-> DB의 chk칼럼을 새롭게 넣어서, 앱이 Destroy 됐을 때 max(seq)값의 chk 칼럼을 새롭게 업데이트 해준다.
-> 그런 다음에 안드로이드 자바 딴에서 if문을 활용하여 걸러준다.
이런식으로 상황에 대해 생각을 해 본 다음, 알고리즘을 짜기 시작했다.
chk의 0 유무를 걸러서 polyline을 끊어줘야 했기 때문에 한 행씩 검사하는 방법으로 코드를 짰다.
for문으로 돌려주려고 생각을 했는데 그렇게 하려면 총 row 개수를 알아야 했기 때문에 오류 카운트, 즉 0개수를 한꺼번에 받아와서 오류 개수만큼 for문을 돌려주고 그 안에 무한루프 while문을 넣어서 break해주는 방식으로 코드를 수정했다. 이렇게 하면 오류 카운트 * 오류까지의 1카운트 = 총 행 개수 가 되어서 가능한 방법이었다.
이렇게 개수 불러오는 것 까지는 성공을 했지만 배열쪽에서 오류가 발생해서 방법을 고안해보았다.
배열을 처음에 초기화 할 때는 배열 크기를 정해줘야하는데, 동적으로 정할 수 없었다.
1. 일단 총 행 개수만큼의 크기인 배열에 위경도를 넣어준다.
2. 오류카운트 전의 개수인 배열을 다시 선언해주고 배열을 깊은 복사의 방법으로 복사해준다.
이렇게 하니까 해결이 되었다!
'Android Studio' 카테고리의 다른 글
[Android Studio] Motion Layout을 이용한 레이아웃 동작 움직임 추가(접었다 폈다 하기) (0) | 2024.04.12 |
---|---|
[Android Studio][Zeplin] 앱 디자인 툴, Zeplin(제플린) (0) | 2024.04.08 |
Json Array 다루기 (0) | 2021.07.20 |
[Android Studio] bluetooth 사용 (0) | 2021.06.01 |
[Android Studio] Pdf Viewer (0) | 2021.04.13 |