public abstract class

ActivityResultLauncher<I>

extends java.lang.Object

 java.lang.Object

↳androidx.activity.result.ActivityResultLauncher<I>

Overview

A launcher for a previously-prepared call to start the process of executing an ActivityResultContract.

Summary

Constructors
publicActivityResultLauncher()

Methods
public abstract ActivityResultContract<java.lang.Object, java.lang.Object>getContract()

Get the ActivityResultContract that was used to create this launcher.

public voidlaunch(java.lang.Object input)

Executes an ActivityResultContract.

public abstract voidlaunch(java.lang.Object input, ActivityOptionsCompat options)

Executes an ActivityResultContract.

public abstract voidunregister()

Unregisters this launcher, releasing the underlying result callback, and any references captured within it.

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructors

public ActivityResultLauncher()

Methods

public void launch(java.lang.Object input)

Executes an ActivityResultContract.

This method throws if there was no Activity found to run the given Intent.

Parameters:

input: the input required to execute an ActivityResultContract.

public abstract void launch(java.lang.Object input, ActivityOptionsCompat options)

Executes an ActivityResultContract.

This method throws if there was no Activity found to run the given Intent.

Parameters:

input: the input required to execute an ActivityResultContract.
options: Additional options for how the Activity should be started.

public abstract void unregister()

Unregisters this launcher, releasing the underlying result callback, and any references captured within it. You should call this if the registry may live longer than the callback registered for this launcher.

public abstract ActivityResultContract<java.lang.Object, java.lang.Object> getContract()

Get the ActivityResultContract that was used to create this launcher.

Returns:

the contract that was used to create this launcher

Source

/*
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


package androidx.activity.result;

import android.annotation.SuppressLint;

import androidx.activity.result.contract.ActivityResultContract;
import androidx.annotation.MainThread;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityOptionsCompat;

/**
 * A launcher for a previously-{@link ActivityResultCaller#registerForActivityResult prepared call}
 * to start the process of executing an {@link ActivityResultContract}.
 *
 * @param <I> type of the input required to launch
 */
public abstract class ActivityResultLauncher<I> {

    /**
     * Executes an {@link ActivityResultContract}.
     *
     * <p>This method throws {@link android.content.ActivityNotFoundException}
     * if there was no Activity found to run the given Intent.

     * @param input the input required to execute an {@link ActivityResultContract}.
     *
     * @throws android.content.ActivityNotFoundException
     */
    public void launch(@SuppressLint("UnknownNullness") I input) {
        launch(input, null);
    }

    /**
     * Executes an {@link ActivityResultContract}.
     *
     * <p>This method throws {@link android.content.ActivityNotFoundException}
     * if there was no Activity found to run the given Intent.
     *
     * @param input the input required to execute an {@link ActivityResultContract}.
     * @param options Additional options for how the Activity should be started.
     *
     * @throws android.content.ActivityNotFoundException
     */
    public abstract void launch(@SuppressLint("UnknownNullness") I input,
            @Nullable ActivityOptionsCompat options);

    /**
     * Unregisters this launcher, releasing the underlying result callback, and any references
     * captured within it.
     *
     * You should call this if the registry may live longer than the callback registered for this
     * launcher.
     */
    @MainThread
    public abstract void unregister();

    /**
     * Get the {@link ActivityResultContract} that was used to create this launcher.
     *
     * @return the contract that was used to create this launcher
     */
    @NonNull
    public abstract ActivityResultContract<I, ?> getContract();
}