개발모음집

잠금화면에서 데이터 관리하기 feat.sqlite 본문

Android

잠금화면에서 데이터 관리하기 feat.sqlite

void 2017. 8. 2. 17:17

fcm 푸쉬를 받으면 잠금화면에 데이터를 넘겨주려고 한다.

생각한 방법

1. 처음에 PendingIntent를 생각했다. 하지만 fcm 클래스에서 인텐트로 데이터가 넘어가지도 않고, 푸쉬가 올 때마다 액티비티가 뜨는 문제가 발생한다.

2. 그래서 브로드캐스트로 데이터를 넘겨주는 것을 생각했다. 데이터는 넘길 수 있겠지만, 잠금화면 특성상 onCreate, onDestroy가 반복할텐데 확인하지않고 액티비티를 끄면

데이터들은 날라간다. 영속성의 문제로 안된다고 생각했다.

3. SharedPreference를 생각했다. 해시맵구조이기 때문에 데이터를 삭제할 때 관리하기가 힘들 것이라고 판단했다.

4. 그렇고 서버에 있는 mysql에 저장하기에는 힘들 것 같고, sqlite가 기능을 구현하는데 제일 괜찮을 것 같다. 다만 잠금화면이 켜져있는 상태에서 어떻게 리스트뷰들을 동기화할 것인가에 대해 고민해봐야겠다. 아마 AsynTask를 사용해야할 것 같다.


sqlite 객체는 처음 써보니 참고블로그를 보고 sqlite에 대해 파악을 하자


4-1 어떻게 리스트뷰를 동적으로 추가할 것인가?

1) firebase메세지를 받는 클래스에서 fcm알림이 오면 broadCast로 방송함 

2) 잠금화면 액티비티에서 브로드캐스트리시버로 이벤트를 받으면(참고블로그)

3) 리스트뷰에 추가




++ sqlite에선 autoincrement를 

INTEGER PRIMARY KEY AUTOINCREMENT

이런식으로 해야한다. (출처 : 참고블로그)