我想将我的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);
P.S。
我想避免在XML或Activity本身中定义IntentFilter。 原因?使代码尽可能分离,从而可读(希望如此)
答案 0 :(得分: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");