onCreate는 화면 나오기 전이니까 당연히 무한루프의 늪에 빠져있죠.
디비에 데이터가 추가될 경우라고 하셨는데, 추가는 누가 하는건가요?
mysql인 것으로 보아 단말의 로컬 DB가 아닌 서버DB로 생각되는데, 서버의 DB에 데이터가 추가될 때마다 단말에서 갖고와서 파싱해서 보여주겠다는 말인거죠?
아주 단순하게는 다른 분의 답변처럼 특정시간마다의 타이머로 폴링하는 방법이 있고, 이런 경우 데이터의 추가가 발생하지 않아도 갖고오고 파싱한다는 단점과 폴링 간격에 2개 이상의 데이터가 추가되면 화면에 보이지 않는 데이터가 있다는 단점이 있겠네요
일반적인 해결법이라면 디비에 데이터가 추가될 때, 트리거를 발생시키고 거기서 단말로 push를 쏴주고, push를 받아서 파싱해오는 방식이 되겠습니다만, 구현량이 꽤 많아지겠군요. (DB에 어떻게 추가되는지 알 수 없으니 트리거는 쓰지 않아도 될 가능성도 높네요)