2013-04-18 1 views
0

클래스에서 함수를 상속하려고합니다. 여기에는 PhoneStateListener 등록이 포함됩니다. 다음은 Main.java에서 상속을 시도하는 함수입니다.다른 클래스에서 상속 한 경우 PhoneStateListener가 작동하지 않습니다.

public Main(Context context) { 
    this.mContext = context; 
} 

    @Override 
protected void onCreate(Bundle savedInstanceState) { 
     ... 
    registerPhoneStateListener(); 
    } 

public void registerPhoneStateListener() { 
myPhoneStateListener = new MyPhoneStateListener(); 
telephonyManager = (TelephonyManager) mContext 
      .getSystemService(Context.TELEPHONY_SERVICE); 
telephonyManager.listen(myPhoneStateListener, 
      PhoneStateListener.LISTEN_CALL_STATE); 
    } 

myPhoneStateListener 여기 내 다른 클래스의 코드 인 Main.java

public class MyPhoneStateListener extends PhoneStateListener {...} 

의 공용 클래스입니다.

Main main =new Main(this); 
main.registerPhoneStateListener(); 

PhoneStateListener는 Main.java에서 정상적으로 작동하지만 다른 클래스에서는 작동하지 않습니다. 도와주세요, 고마워요!

답변

0

제 의견에는 차이가 있습니다. 활동을 실행하면 SO가 올바른 활동을 설정하여 활동을 효과적으로 작동하게 만듭니다. 새 활동을 사용하여 활동을 만들면 같은 일이 발생하지 않습니다.

+0

다른 클래스의 PhoneStateListener를 상속하는 것이 불가능하다는 것을 의미합니까? – user2051823

+0

정말 다른 클래스에서 상속해야하는 경우 클래스 다이어그램을 재고해야한다고 생각합니다. 나는 당신이하고있는 것처럼 다른 수업에서 청취자를 시작하려고 시도한 적이 없지만, 내 생각에 당신이 직접 활동을 인스턴스화 할 때 그것은 매우 다릅니다. – FrancescoAzzola

관련 문제