0

我在活动 A 中有一个服务启动

private void startService() {
        Intent pushIntent = new Intent(this, MyService.class);
        pushIntent.putExtra(MyService.TYPE_SCREEN, 1);
        startService(pushIntent);
    }
在我的服务中,我从中获取数据onStartCommand

 @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        typeScreen = intent.getExtras().getInt(TYPE_SCREEN);
        return Service.START_STICKY;
    }

我想当从活动 A 更改为活动 B 时,我会将屏幕类型从服务更新12。我该怎么做?

4

1 回答 1

0

Android 只创建一个服务实例。

请求启动给定的应用程序服务。Intent 可以包含要启动的特定服务实现的完整类名,也可以包含要启动的服务种类的操作和其他字段的抽象定义。如果此服务尚未运行,它将被实例化并启动(如果需要,为它创建一个进程);如果它正在运行,那么它会继续运行。

因此,在您的情况下,该服务已经在运行,那么您只需额外发送屏幕 2 的意图。它只会调用 onStartCommand Override 方法。

 Intent pushIntent = new Intent(this, MyService.class);
        pushIntent.putExtra(MyService.TYPE_SCREEN, 2);
        startService(pushIntent);
于 2019-08-23T04:23:46.557 回答