我需要在我创建的Service类中实现广播接收器(BroadcastReceiver):
public class MyService extends Service
在这个班级里,我需要通过使用Thread-Sleep模拟下载来实现当用户在MyActivity类中按下按钮时使用sendBroadcast()。我无法将Service类扩展到BroadcastReceiver,因为它已经扩展到Service。有谁能帮我想出如何实现这种机制吗?我需要在我创建的Service类中实现广播接收器(BroadcastReceiver):
public class MyService extends Service
在这个班级里,我需要通过使用Thread-Sleep模拟下载来实现当用户在MyActivity类中按下按钮时使用sendBroadcast()。我无法将Service类扩展到BroadcastReceiver,因为它已经扩展到Service。有谁能帮我想出如何实现这种机制吗?把BroadcastReceiver作为您的服务的顶级类或内部类。并在您的服务中获取接收器的引用。像这样:
public class MyService extends Service {
BroadcastReceiver mReceiver;
// use this as an inner class like here or as a top-level class
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// do something
}
// constructor
public MyReceiver(){
}
}
@Override
public void onCreate() {
// get an instance of the receiver in your service
IntentFilter filter = new IntentFilter();
filter.addAction("action");
filter.addAction("anotherAction");
mReceiver = new MyReceiver();
registerReceiver(mReceiver, filter);
}
}
unregisterReceiver(mReceiver);
。 - kosemuckel