본문 바로가기
반응형

분류 전체보기68

[Android] SharedPreference commit과 apply Android에서 사용자 설정 값이나 간단한 데이터를 저장하기 위해 SharedPreference를 사용합니다. SharedPreference에 데이터를 저장할 때 마지막에 어떤 함수를 호출하시나요? 여기에 2 가지 옵션이 있습니다. commit() apply() 이 두 함수는 어떤 차이가 있고, 언제 무엇을 써야 할까요? 두 함수의 역할은 사실 동일합니다. 차이점은 return type에 있습니다. boolean commit(); void apply(); commit 메서드는 데이터를 persistent storage에 저장하는 과정이 동기화되어 있고, storage에 write를 한 결과(성공/실패)를 사용자에게 boolean으로 반환합니다. 단순히 commit을 호출하지만 그 내부 로직은 동기화되어.. 2020. 11. 8.
[Android] 화면 방향 변경 시에도 RecyclerView의 Position 유지하기 디바이스 방향을 가로 혹은 세로로 바꾸게 되면 Config가 변경되면서 Activity의 라이프사이클이 다시 onCreate부터 호출됩니다. 즉 RecyclerView의 스크롤이 상단으로 되돌아 가게 되죠. Config가 변경되어 Activity 종료 라이프사이클을 탈 때 현재 스크롤 정보를 저장하고, Activity가 다시 시작하는 라이프사이클 때 저장했던 스크롤 정보를 가져와 적용시켜주면 됩니다. 이를 위해 우리가 알아야 할 메서드는 다음 2가지입니다. public void onSaveInstanceState(Bundle outState); public void onViewStateRestored(@Nullable Bundle savedInstanceState); onSaveInstanceState는.. 2020. 11. 8.
[Android] BroadcastReceiver를 통해 SMS 수신하기 가계부 앱을 보면 요즘 카드/체크카드 결제 내역을 사용자가 직접 입력하는 경우는 거의 없습니다. SMS로 결제 통보가 오면, 가계부 앱에서 이를 자동으로 등록하며, 사용 내역 같은 정보만 사용자가 다시 수정하는 정도입니다. 그럼 가계부 앱은 어떻게 SMS를 읽어 DB에 저장할 수 있는 것일까요? 이 시나리오에 대해 다음 두 가지 포인트를 생각해볼 수 있습니다. SMS 문자가 오면 이를 가계부 앱에서 이벤트로 받아 문자 메세지를 확인한다. 문자 메세지를 적절히 분석/파싱하여 DB 데이터 스키마에 맞게 변환/저장한다. 2번의 경우는 String 파싱/정규표현식과 관련된 내용으로 본 포스팅에서 다루지 않으며, 1번 SMS 문자를 앱에서 읽는 부분에 대해서만 다룹니다. 1. SMS를 받을 수 있도록 권한 부여 .. 2020. 11. 8.
[Android] startActivityForResult 사용 시 주의할 점 본 포스팅은 아래 글을 바탕으로 하고 있습니다. https://developer.android.com/training/basics/intents/result.html?hl=ko#ReceiveResult A 라는 Activity에서 B라는 Activity로 전환하고, 이후 다시 Activity A로 돌아올 때 Activity B에서 처리한 작업 결과를 가져와서 Activity A를 표현해야할 필요가 있습니다. Activity 전환을 위해 Intent와 함께 startActivity() 메서드를 사용합니다. 하지만 지금과 같이 전환하는 Activity B로부터 결과를 받기 위해서는 조금 다른 메서드를 사용합니다. 1. Activity A > B 호출 static final int PICK_CONTACT_RE.. 2020. 11. 8.
반응형