Java Android-不允许从JobIntentService启动服务意图:应用程序位于后台
我正在Java Android-不允许从JobIntentService启动服务意图:应用程序位于后台,java,android,Java,Android,我正在广播接收器中接收意图,并尝试启动服务 由于我无法在应用程序处于后台时运行服务,因此我尝试使用JobIntentService将我的意图传输到正常服务: public class JsInvokerJobService extends JobIntentService { ... @Override protected void onHandleWork(Intent intent) { // We have received work to do.
广播接收器中接收意图,并尝试启动服务
由于我无法在应用程序处于后台时运行服务,因此我尝试使用JobIntentService
将我的意图传输到正常服务:
public class JsInvokerJobService extends JobIntentService {
...
@Override
protected void onHandleWork(Intent intent) {
// We have received work to do. The system or framework is already
// holding a wake lock for us at this point, so we can just go.
Log.i(TAG, "Executing work: " + intent);
this.startService(intent);
Log.i(TAG, "Finished work: " + intent);
}
但是,这仍然会导致我的应用程序在后台崩溃,并出现错误:
后台不允许启动服务意图应用程序
我读过关于在这些情况下使用Runnable
,但我不知道如何将我的上下文传递给Runnable:
final Handler mHandler = new Handler();
@Override
protected void onHandleWork(Intent intent) {
// We have received work to do. The system or framework is already
// holding a wake lock for us at this point, so we can just go.
Log.i(TAG, "Executing work: " + intent);
mHandler.post(new Runnable() {
@Override public void run() {
this.startService(intent);
}
});
Log.i(TAG, "Finished work: " + intent);
}
我如何访问上下文(显然,此
将不再工作)?我如何传递意图
这会起作用吗?或者还有其他方法?为什么要从onHandleWork()启动服务?在onHandlework()中完成您的工作。我正在使用React Native,我需要启动一个headless JS任务,该任务将执行大量逻辑(访问本地存储、进行一些网络调用等)。据我所知,这只能通过正常的服务来完成。看见