마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

GCM 화면이 켜져있으면 잘받는데 휴대폰화면이 꺼져있을때는 받아온 데이터가 사라집니다 [closed]

0 추천

아래에서 받은 gcm을 데이터베이스에 저장하게 해뒀는데 화면이 꺼져있으면 받은 데이터가 저장되지도않고 사라지는데 어떻게 하면 좋을까요??

 

private void processIntent(Intent intent) {
    acquireCpuWakeLock(this);
    String from = intent.getStringExtra("from");
    if (from == null) {
        Log.d("TAG", "from is null.");
        return;
    }

    i++;
    if(i>10) i=1;
    String command = intent.getStringExtra("command");
    String type = intent.getStringExtra("type");
    String data = intent.getStringExtra("data");

    database.execSQL( "delete from MEMO where id = "+ i);
    database.execSQL( "insert into MEMO(id, contents) values ('"+i+"', '"+data+"');" );
    database.execSQL( "delete from CUSTOMER_INFO where id = '1'");
    database.execSQL( "insert into CUSTOMER_INFO(id, name) values ('1', '"+i+"');" );

    Cursor cursor;
    String ls_sql;
    ls_sql = " select * from MEMO";
    cursor = database.rawQuery(ls_sql);
    if (cursor != null) {
        if (cursor.moveToFirst()) {
            do {
                if (cursor.getInt(1)>=0)
                    alldata += cursor.getString(2) + "\n";
            } while (cursor.moveToNext());
        }
    }
    cursor.close();
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(data.substring(3,6));
    builder.setMessage(data);
    builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
        }
    });
    final AlertDialog dialog = builder.show();
    Thread thread1 = new Thread(new Runnable() {
        @Override
        public void run() {
            try{
                Thread.sleep(1000);
                dialog.cancel();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    });
    thread1.start();
    final String setdata=alldata;
    messageOutput.setText(setdata);
    alldata = "";
    /*Thread thread1 = new Thread(new Runnable() {
        @Override
        public void run() {
            try{
                Thread.sleep(1000);

                releaseCpuLock();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    });
    thread1.start();
    */
}
질문을 종료한 이유: 문제해결
넷째형 (220 포인트) 님이 2016년 6월 13일 질문
넷째형님이 2016년 6월 29일 closed
...