카테고리

  • 안드로이드
  • IOS
  • MFC
  • JAVA
  • AWS
  • LAMP
  • 여행&사진
  • 이런저런생활
  • 2015년 12월 3일 목요일

    [안드로이드]PendingIntent로 서비스 호출 후, 서비스 종료

    PendingIntent를 사용하여 서비스를 호출 하고
    다시 서비스를 종료할 경우
    (서비스의 Destroy함수를 호출 하고 싶을 경우)
    context.stopService(intent)해주면 됨

    이중 Intent호출을 할 경우
    context.startService(intent)로 하면 에러가 뜨기 때문에
    PendingIntent.send()로 호출을 하지만
    destroy할 때는 기존 destroy방식으로 진행
    context.stopService(intent);

    public class TestReceiver extends BroadcastReceiver {
        public static boolean flag = false;
        public TestReceiver() {
        }

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO: This method is called when the BroadcastReceiver is receiving
            // an Intent broadcast.

            if(flag) {
                //** onDestroy메소드 호출
                Intent stopServ = new Intent(context, BoundService.class);
                context.stopService(stopServ);

                flag = false;
            } else {
                Intent startServ = new Intent(context, BoundService.class);
                PendingIntent pendIntent = PendingIntent.getService(context, 0, startServ, PendingIntent.FLAG_ONE_SHOT);
                try {
                    pendIntent.send();
                }catch(PendingIntent.CanceledException e) {
                    Log.d("Start Service", "Error");
                }
    //            context.startService(intent);
                flag = true;
            }
    //        throw new UnsupportedOperationException("Not yet implemented");
        }
    }

    댓글 없음 :

    댓글 쓰기