2013-03-11 1 views
0

죄송합니다. BroadcastReceiver을 활동 라이프 사이클과 혼합하면 두뇌가 많은 오류와 오작동을 일으키는 것을 알 수 있습니다. 나는 내 두뇌가 멈추고 나의 질문이 간단하다는 데 도움이 필요하다.활동을 감지하는 BroadcastReceiver 클래스

BroadcastReceiver 활동을 감지하는 클래스가 onPause() 방법이 될 수 있습니까? 그렇다면 클래스는 어떻게 될까요?

+0

을하는 데 도움이 내가 바로 당신이 onPause()에서 콜백을 의도를 보낼 수 이해하고있는 브로드 캐스트 리시버가 그것을 잡을 수 있다면 onResume에서이 문제 – DjHacktorReborn

+1

를 해결할 등록합니다. Realy은 내가 왜 두려워하는지, 왜 당신이 이것을 필요로하는지 묻습니다. –

답변

1

귀하의 활동에 대해 생각할 수있는 유일한 것은 귀하의 수신자 중 하나 인 의복 방송 의도입니다.

예컨대 :

조치 :

public static final String CUSTOM_INTENT = "example.com.intent.action.ActivityGoingOnPause"; 

활동 onPause :

protected void onPause() { 
    Intent i = new Intent(); 
    i.setAction(CUSTOM_INTENT); 
    context.sendBroadcast(i); 
    } 

매니페스트 :

<receiver android:name=".YourReceiver" android:enabled="true"> 
     <intent-filter> 
      <action android:name="example.com.intent.action.ActivityGoingOnPause"></action> 
     </intent-filter> 
    </receiver> 

reciver입니다 :

public class YourReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction().equals(YourActivity.CUSTOM_INTENT)) { 
      //do your thing 
     } 
    } 
} 

희망이 브로드 캐스트 등록 취소 정지에의

+0

감사합니다 !!!!!!!!!!!!!!!!!!! – aljuaid86

+0

@ aljuaid86 또한 "이 기능을 일시 중지하면 의도를 알 수 없으므로 불필요한 시스템 오버 헤드를 줄일 수 있습니다"라는 메시지가 계속 나타납니다. [site] (http://developer.android.com/reference/android/content/ BroadcastReceiver.html) –

+0

확인 (추천)! – aljuaid86

0

onPause에서 isActivityPaused와 같은 전역 변수를 설정하고 활동의 onResume에서 설정을 해제 한 다음 해당 변수를 확인하고 브로드 캐스트를 전송할지 여부를 결정하십시오.