Android 服务返回类型是否可以混合使用,根据操作同时使用START\u STICKY和START\u REDELIVER\u INTENT?

Android 服务返回类型是否可以混合使用,根据操作同时使用START\u STICKY和START\u REDELIVER\u INTENT?,android,android-service,Android,Android Service,onStartCommand()返回类型是否可以根据操作进行混合?例如,一个使用START_STICKY启动的服务,但始终获得第一个重新交付的意图以维护状态 当初始意图包含不容易持久化的内容(如PendingEvent)时,这将特别有用 这似乎可行,但我找不到文档,我担心可能会出现意外行为。文档确实表明,使用START\u REDELIVER\u INTENT的服务可能不会像使用START\u STICKY的服务那样保持运行,但这有点不清楚 START\u STICKY用于显式启动和恢复的服务

onStartCommand()返回类型是否可以根据操作进行混合?例如,一个使用START_STICKY启动的服务,但始终获得第一个重新交付的意图以维护状态

当初始意图包含不容易持久化的内容(如PendingEvent)时,这将特别有用

这似乎可行,但我找不到文档,我担心可能会出现意外行为。文档确实表明,使用START\u REDELIVER\u INTENT的服务可能不会像使用START\u STICKY的服务那样保持运行,但这有点不清楚

START\u STICKY用于显式启动和恢复的服务 根据需要停止,而启动\u不粘滞或启动\u重新启动\u意图 用于只应在处理时保持运行的服务 发送给他们的任何命令

下面是一个服务示例,它可以处理各种请求,而不提供初始状态,但确保其可用

private PendingIntent pendingIntent;
private Config config;

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    if (intent != null) {
        switch (intent.getAction()) {

            case ACTION_START:
                // save state
                config = intent.getParcelableExtra("config");
                pendingIntent = intent.getParcelableExtra("pendingIntent");
                return START_REDELIVER_INTENT;

            case ACTION_STOP:
                stopSelf();
                return START_NOT_STICKY;

            case ACTION_SOME_TASK:
                // caller does not have state but it needs to be loaded here
                doSomething();
                break;

            case ACTION_SOME_OTHER_TASK:
                doSomethingElse();
                break;
        }
    }
    return START_STICKY;
}