2013-12-13 1 views
-1

intentFilter를 미리 정의 된 클래스의 인스턴스로 만들고 싶습니다. 하지만 어쨌든 이런 일을하려고 할 때 일식이 나에게 오류를 던진다. (이것은 단지 거친 아이디어는 ... 난 다른 접근을 시도하거나 한 경우)IntentFilter as stand alone 클래스

import android.content.IntentFilter; 

public class MyIntentFilter extends IntentFilter { 

MyIntentFilter.addAction(INTENT_BY_MAIN); // I am not sure about this line 
MyIntentFilter.addAction(INTENT_BY_OTHER); 
MyIntentFilter.addAction(INTENT_BY_WHATEVER); 

} 

구현은 다음과 같아야합니다

MyIntentFilter mFilter = new MyIntentFilter(); 
mBroadcastReceiver mReceiver = new mBroadcastReceiver(mHandler); 
this.registerReceiver(mReceiver, mFilter); 

P.S.

XML 또는 활동 자체에서 IntentFilter를 정의하지 않도록하고 싶습니다. 이유는 무엇입니까? 가능한 한 코드를 분리하여 읽을 수 있도록 (잘하면)

답변

1

IntentFilter를 확장하려는 이유를 이해할 수 없습니다. 그냥 피하기 XML 정의에 있다면, 당신은 단순히 그런 일을 할 수있는, 그것을 작동합니다 (더 아무것도 매니페스트에 추가되지 않습니다) :

다음 질문은
mBroadcastReceiver mReceiver = new BroadcastReceiver(mHandler); 
this.registerReceiver(mReceiver, new IntentFilter("MY_ACTION"); 
this.registerReceiver(mReceiver, new IntentFilter("MY_ACTION_2"); 
this.registerReceiver(mReceiver, new IntentFilter("MY_ACTION_3"); 
+0

의로 IntentFilter() 여러 오버로드 될 수 있습니다 매개 변수? .... NAAAAH, 그럴 수는 없지만 .... 물론 addAction을 사용할 수는 있지만 특정 활동으로 하드 코드되고 싶지 않다. –

+0

나는 코딩 방법에 대해 이미 언급했지만이 게시물의 요점은 아니다. 하지만 어쨌든 도움을 주셔서 감사합니다. –