db.onUpgrade(sqldb, 1, 2); 이것때문에
버튼을 누를때마다 DBHelper 클래스의 onUpgrade가 호출되어 CallDB테이블을 지우고 새로 생성하고있어서 데이터가 유지가 안된것입니다.
특별한 경우가 아닌경우에는 onUpgrade를 명시적으로 호출을 안하시는 편이 좋습니다.
테이블의 삭제나 변경이 필요한경우 super(context, "CallDB", null, 1); 이부분의 버전만 바꿔주시고
재설치하시면 onUpgrade가 자동으로 호출되어 DB를 초기화할수있습니다.
예를 들면 DB vesion이 1인 어플을 사용하다가
테이블이 더추가되어야 하는상황이 발생하여 version을 2로 올리고
재설치하여 어플을 실행하면 db = new DBHelper(getApplicationContext());
이렇게 DBHelper객체를 생성할때 기존에 사용하던 버전과 현재 버전을 비교하여 다르다면
onUpgrade 가 자동으로 호출되어 DB를 초기화 하게 됩니다.