使用 Intent 启动 Unbound Service

服务是在后台运行(在 UI 线程上)而不与用户直接交互的组件。未绑定的服务刚刚启动,并且不受任何活动的生命周期的约束。

要启动服务,你可以执行以下示例中所示的操作:

// This Intent will be used to start the service
Intent i= new Intent(context, ServiceName.class);
// potentially add data to the intent extras
i.putExtra("KEY1", "Value to be used by the service");
context.startService(i);

你可以使用 onStartCommand() 覆盖来使用意图中的任何额外内容:

public class MyService extends Service {
    public MyService() {
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId)
    {
        if (intent != null) {
            Bundle extras = intent.getExtras();
            String key1 = extras.getString("KEY1", "");
            if (key1.equals("Value to be used by the service")) {
                //do something
            }
        }
        return START_STICKY;
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

}