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

통화 서비스중 질문 입니다

0 추천
 public void onCallStateChanged(int state, String incomingNumber) {
  Intent testActivityIntent = new Intent(ServiceReceiver.context,
    Voice_Main.class);

  switch (state) {
  // 전화받을때, 끊을때
  case TelephonyManager.CALL_STATE_IDLE:

   Log.d("test1", "통화를 끊었어요");
   if(a == true){
   ServiceReceiver.context.stopService(testActivityIntent);
   
   Voice_Main.getActivity().finish();
   }
   break;
  // 통화 연결 시작
  case TelephonyManager.CALL_STATE_OFFHOOK:
   Log.d("test", "통화중!!!!!!!!!");
   if (a == false) {
    a = true;

    testActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    testActivityIntent
      .addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
    ServiceReceiver.context.startActivity(testActivityIntent);
   }
   break;
  // 벨울림
  case TelephonyManager.CALL_STATE_RINGING:

   break;
  // 그외
  default:

   break;
  }
 }

이렇게 코드를 작성하였고 Voice_Main 액티비티가 통화를 딱 받았을때 띄어집니다

그리곤 통화가 종료되면 자동으로 서비스가 스탑되고 액티비티를 종료하고싶은데 서비스는 종료되는거 같은데 액티비티는 정상 종료되지않고 오버플로가 납니다 아무래도 앞에 액티비티를 받아와서 종료시켜주는 부분에서 계속 get 되서 그런거 같은데 다른방법이 있는지 궁금합니다

앞에 Voic_Main 에서

 public static Voice_Main getActivity() {
  return getActivity();
 }

이렇게 받아오기하였습니다

자세한 설명좀 부탁드려요~

WelchsKiller (600 포인트) 님이 2014년 6월 9일 질문

1개의 답변

0 추천
getActivity 함수가 무한 재귀호출하는군요.
익명사용자 님이 2014년 6월 9일 답변
네 그렇습니다 ㅠㅠ 방법이 없을까요??
...