Portfolio/숭실대

GCM 학사정보 팝업기능

루카스강 2014. 9. 15. 11:02

1. 서버로 reg_id 를 전송

 

2. 서버에서 reg_id 가 중복으로 등록되어 있는 값이 있는지 없는지를 확인하고 등록

 

3. 서버에서 주기적으로 학사정보를 파싱.

 

4. 파싱한 내용이 이전 내용과 다른 부분이 있다면 GCM 서버에 알림을 주도록 요청

 

5. 디바이스에서 해당 알림을 활성화 했는지 체크 후 알림 팝업

 

 

생각할 점

 -  디바이스에서 알림 기능을 켰다 껐다할 때 shared preferences 기능을 사용하는 것이 좋을까 아니면 계속 웹에다 요청해서 sql 에서 처리하는 것이 좋을까??

  - 웹에 요청하는 건 자원낭비일까? 전송해야 하는 기기수가 엄청나진다면 알람을 킨 기기만 선별해서 보내는 것도 나쁘지 않은 것 같은데... (SQL 에 대해서 좀 더 공부해 봐야겠다.)

 

 - 3번에 1번꼴로 reg_id 가 전송되지 않고 null 값이 sql에 전송되는 현상이 있다.

  - 다른 앱에서는 이런 오류를 어떻게 고쳤을까? (내 코드에 문제가 있는 건가)

  - shared preferences 로 3번 까지 전송하고 웹에서 이미 등록된 값이 있다면 더 이상 등록을 하지 않는 방식을 채택하긴 했는데 이게 최선인지 잘 모르겠다.

 

 

 - 내용 파싱을 자바로 짜서 네이버 엔클라우드에 며칠째 돌려놓고 있긴 한데... 중간에 잘못되면 어떻하지??

 

 

 

GCM reg_id 등록 코드

 

    private void getPreferences(){
        SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
        String isnull = pref.getString("GCM", "");
        if(isnull.equals(""))
        {
         registerGcm();
           SharedPreferences.Editor editor = pref.edit();
              editor.putString("GCM", "1");
              editor.commit();

        }
        else if(isnull.equals("1"))
        {
         registerGcm();
           SharedPreferences.Editor editor = pref.edit();
              editor.putString("GCM", "2");
              editor.commit();

        }
        else if(isnull.equals("2"))
        {
         registerGcm();
           SharedPreferences.Editor editor = pref.edit();
              editor.putString("GCM", "check");
              editor.commit();

        }
    } 
   

 

 

'Portfolio > 숭실대' 카테고리의 다른 글

시간표 기능  (0) 2014.09.21
식당 랜덤 체크 db 파일  (0) 2014.09.15