LocalBroadcastManager:应用关闭时接收事件
LocalBroadcastManager: Receive events when app is closed
我尝试将 beaconinside sdk 集成到我的应用程序中,我想接收通过 Beaconservice 发送的事件,即使我的应用程序已关闭并从应用程序抽屉(最近的应用程序)中删除。
现在我的代码看起来像这样
BeaconFragment
@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) {
// ...
}
}
BackgroundBeaconService
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 的事件。
我的代码的哪些方面需要在服务中移动 class,哪些可以保留在原处?
事实证明,这个问题离不开beaconinside的交互。所以我给他们发了邮件,他们告诉我这个问题已经在本周发布的新版本(2.8.0)中修复了。
我尝试将 beaconinside sdk 集成到我的应用程序中,我想接收通过 Beaconservice 发送的事件,即使我的应用程序已关闭并从应用程序抽屉(最近的应用程序)中删除。
现在我的代码看起来像这样
BeaconFragment
@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) {
// ...
}
}
BackgroundBeaconService
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 的事件。
我的代码的哪些方面需要在服务中移动 class,哪些可以保留在原处?
事实证明,这个问题离不开beaconinside的交互。所以我给他们发了邮件,他们告诉我这个问题已经在本周发布的新版本(2.8.0)中修复了。