Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 应用程序关闭时IntentService不调用api_Android_Service_Broadcastreceiver_Android Service_Android Service Binding - Fatal编程技术网

Android 应用程序关闭时IntentService不调用api

Android 应用程序关闭时IntentService不调用api,android,service,broadcastreceiver,android-service,android-service-binding,Android,Service,Broadcastreceiver,Android Service,Android Service Binding,我已经创建了一个IntentService来向服务器发送本地数据 我从两个不同的广播接收器调用此服务。 1) 当从连接更改接收器时。 2) 上午12点与报警管理器 当应用程序打开时,它可以正常工作。 但当应用程序关闭时不工作 下面是我的IntentService代码 public class ExpertEventService extends IntentService { @Inject Context context; @Inject Realm realm; public Expert

我已经创建了一个
IntentService
来向服务器发送本地数据

我从两个不同的
广播接收器
调用此
服务
。 1) 当从连接更改接收器时。 2) 上午12点与报警管理器

当应用程序打开时,它可以正常工作。 但当应用程序关闭时不工作

下面是我的
IntentService
代码

public class ExpertEventService extends IntentService {
@Inject
Context context;
@Inject
Realm realm;

public ExpertEventService() {
    super("ExpertEventService");
    Log.e("expertEvent", "service constructor");
    // Toothpick.inject(this, Toothpick.openScope(Constants.APPSCOPENAME));
}

@Override
protected void onHandleIntent(@Nullable Intent intent) {
    Toothpick.inject(this, Toothpick.openScope(Constants.APPSCOPENAME));
    Log.e("expertEvent", "service started");
    RealmResults<AskExpertEventModel> results = realm.where(AskExpertEventModel.class).findAll();
    List<AskExpertEventModel> requestList = realm.copyFromRealm(results);
    String language = realm.where(LanguageStore.class).equalTo(LanguageStore.ISSELECTED, true).findAll().first().getCode();
    String appInstanceCode = Preferences.getAppInstanceCode(context);
    String token = Preferences.getToken(context);
    Api.userManagement(context).expertEvent(appInstanceCode, token, language, requestList)
            .subscribeOn(Schedulers.io())
            .observeOn(Schedulers.io())
            .subscribe(new ApiSuccess<EventResponse>() {
                @Override
                public void call(EventResponse eventResponse) {
                    Log.e("expertEvent", eventResponse.getStatus());
                    if (eventResponse.getStatus().equalsIgnoreCase(Constants.Status.STATUS_SUCCESS)) {
                        Log.e("expertEvent", "sucess");

                       new RealmDB().deleteEvent();;
                    }

                }
            }, new ApiFail() {
                @Override
                public void httpStatus(HttpErrorResponse response) {
                    Log.e("expertEvent", response.getError());
                }

                @Override
                public void noNetworkError() {
                    Log.e("expertEvent", "no network connection");
                }

                @Override
                public void unknownError(Throwable e) {
                    Log.e("expertEvent", e.getMessage());
                }
            });

  }

}
2) 上午12点执行

        public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    //call service
    Log.e("alarmreceiver","in  alarm receiver");
    Intent serviceIntent = new Intent(context, ExpertEventService.class);
    context.startService(serviceIntent);

}
   }

请共享开始ExpertEventService代码(BroadcastReceivers)
IntentService
在执行完
intent
后停止。您需要能够在后台持续运行的
服务
,或者在需要时使用
BroadcastReceiver
启动
IntentService
。添加了从广播接收器调用code的服务@JRameshyes我随时从广播接收器调用intent服务@Michal_196;您是否在安卓O上测试?请共享start ExpertEventService代码(BroadcastReceivers)
IntentService
在执行完
intent
后停止。您需要能够在后台持续运行的
服务
,或者在需要时使用
BroadcastReceiver
启动
IntentService
。添加的服务称为“来自广播接收器的代码”@JRameshyes我会随时从广播接收器调用intent服务@Michal_196;您在安卓O上测试吗?
        public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    //call service
    Log.e("alarmreceiver","in  alarm receiver");
    Intent serviceIntent = new Intent(context, ExpertEventService.class);
    context.startService(serviceIntent);

}
   }