Android LocalBroadcastManager:关闭应用程序时接收事件
我尝试将beaconinside sdk集成到我的应用程序中,并且我希望在我的应用程序关闭并从应用程序抽屉(最近的应用程序)中移除时接收通过Beaconservice发送的事件 现在我的代码看起来是这样的 BeaconFragmentAndroid LocalBroadcastManager:关闭应用程序时接收事件,android,localbroadcastmanager,Android,Localbroadcastmanager,我尝试将beaconinside sdk集成到我的应用程序中,并且我希望在我的应用程序关闭并从应用程序抽屉(最近的应用程序)中移除时接收通过Beaconservice发送的事件 现在我的代码看起来是这样的 BeaconFragment @Override public void onCreate() { super.onCreate(); // init beaconinside sdk using my token BeaconService.init(this, A
@Override
public void onCreate() {
super.onCreate();
// init beaconinside sdk using my token
BeaconService.init(this, API_TOKEN);
}
BeaconHandler
public class BeaconHandler extends BroadcastReceiver {
// ...
public void onReceive(Context context, Intent intent) {
// ...
}
}
backgroundbeacervice
public class BackgroundBeaconservice extends IntentService {
// ...
public void onCreate() {
// setup intent filter for beacon events
IntentFilter beaconListenerFilter = new IntentFilter();
// add intent filter for BeaconService (e.g. REGION_ENTER)
// beacon event handler
beaconListener = new BeaconHandler(this);
// register the event handler to the LocalBroadcastManager
registerBeaconEventHandler(beaconListener, beaconListenerFilter);
}
private void registerBeaconEventHandler(BroadcastReceiver receiver, IntentFilter filter) {
LocalBroadcastManager.getInstance(this).registerReceiver(receiver, filter);
}
}
到目前为止,它可以工作,但当我从最近的应用程序抽屉关闭应用程序时,它停止工作。我写信给Beaconinside的技术支持,他们告诉我使用一个服务在后台接收来自LocalBroadcastManager的事件
我的代码的哪些方面需要在服务类中移动,哪些方面可以保持不变?事实证明,如果没有beaconinside的交互,这个问题就无法解决。所以我给他们发了一封邮件,他们告诉我这个问题在本周发布的新版本(2.8.0)中得到了解决。事实证明,没有beaconinside的交互,这个问题是无法解决的。所以我给他们发了一封邮件,他们告诉我这个问题在本周发布的新版本(2.8.0)中得到了解决。没错,你需要一个服务。服务应该注册一个接收者,并处理接收者发出的事件。因此,IntentService随后将收到BeacService发送的意图,因为它使用LocalBroadcastManager发送广播,对吗?如果设置正确,那么yesI现在在IntentService中移动了我的所有代码,所以在onCreate方法中我注册了我的BroadcastReceiver。它可以工作,但是如果我关闭应用程序,我的广播接收器就不会再接收事件了。是的,没错。这样做是为了让用户知道某些事情是在后台完成的。没错,您需要一个服务。服务应该注册一个接收者,并处理来自接收者的事件。因此IntentService随后将接收BearConservice发送的intent,因为它使用LocalBroadcastManager发送广播,对吗?如果设置正确,那么yesI现在将我的所有代码移动到IntentService中,因此在onCreate方法中我注册了我的BroadcastReceiver。它可以工作,但是如果我关闭应用程序,我的广播接收器就不会再接收事件了。是的,没错。这样做是为了让用户知道某些事情是在后台完成的。