我有一个JobIntentService,如果满足某些条件,它必须启动由MainActivity接收的LocalBroadCastManager。
我正在这样做:
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager
.getInstance(MyJobIntentService.this);
[...]
localBroadcastManager.sendBroadcast(new Intent(
"com.durga.action.exit2"));
在我的主要活动中以这种方式定义了LocalBroadCastManager:
LocalBroadcastManager mLocalBroadcastManager3;
BroadcastReceiver mBroadcastReceiver3 = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.durga.action.exit2")) {
[my code]
}
}
};
mLocalBroadcastManager3 = LocalBroadcastManager.getInstance(this);
IntentFilter mIntentFilter3 = new IntentFilter();
mIntentFilter3.addAction("com.durga.action.exit2");
mLocalBroadcastManager3.registerReceiver(mBroadcastReceiver3, mIntentFilter3);
到目前为止,我一直在使用类似的代码使用服务而不是JobIntentServices,但是从API 26开始,在某些情况下不再可以执行服务,因此我需要使用JobIntentServices。
代码就是这样的:
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager
.getInstance(MyService.this);
[...]
localBroadcastManager.sendBroadcast(new Intent(
"com.durga.action.exit2"));
我该怎么办才能使JobIntentService成功启动LocalBroadcastManager?
我无法提供有关错误的详细信息,因为在模拟器上执行时,它仅以“应用已停止工作的消息”完成了应用 尽管代码处于尝试状态,但是catch块仍然存在。由于我的计算机资源无法在模拟器中调试API 26以获取更多信息,而且我没有具有API 26的物理设备,因此这也是基本不可能的。