2013-12-13 45 views
-1

我想創建我的intentFilter作爲預定義類的實例。但不知何故,當我嘗試做這樣的事情時,eclipse會向我發出錯誤。 (這只是粗略的想法......我已經嘗試不同的方法要麼)IntentFilter作爲獨立類

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); 

附:

我想避免在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

我已經提到,你的方式編碼不是本文的重點。但無論如何感謝您的幫助。 –