我创建了一个广播接收器,它工作正常。但我需要将处理程序传递给该类。
public static class DataReceiver extends BroadcastReceiver {
Handler handler;
DataReceiver(Handler loghandler) {
this.handler = loghandler;
}
@Override
public void onReceive(Context context, Intent intent) {
//things goes here
}
}
目前我正在使用这样的&如果构造函数覆盖不可用,它就可以工作。
Intent intent = new Intent(this, DataReceiver .class);
但我也需要传递处理程序。我该如何发送处理程序?感谢
答案 0 :(得分:1)
我真的不明白你想要完成什么,但我认为这可能会对你有所帮助。您不需要为广播接收器创建一个全新的类,但您可以在主活动中使用它,如下所示:
BroadcastReceiver receiveLocationReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Your custom action
}
};
IntentFilter receiveLocationFilter = new IntentFilter();
receiveLocationFilter.addAction("android.intent.RECEIVE_LOCATION");
在“onStart”中注册接收器:
registerReceiver(receiveLocationReceiver, receiveLocationFilter);
在“onStop”中取消注册:
unregisterReceiver(receiveLocationReceiver);
然后,当您需要发送广播时,您需要的是:
Intent sendBroadcastIntent = new Intent("android.intent.RECEIVE_LOCATION");
sendBroadcast(sendBroadcastIntent);