# PopulateStorageAction

Artifact: [androidx.test.backup:backup](https://developer.android.com/jetpack/androidx/releases/test-backup) [View Source](https://cs.android.com/search?q=file:androidx/test/backup/actions/PopulateStorageAction.kt+class:androidx.test.backup.actions.PopulateStorageAction) Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/test-backup#1.0.0-alpha04)

*** ** * ** ***


```
public final class PopulateStorageAction implements BackupDeviceAction
```

<br />

*** ** * ** ***

Populates test data inside the application sandbox before a backup.

Reads `https://developer.android.com/reference/androidx/test/backup/BackupActionInputKeys#STORAGE_TYPE()` from the incoming arguments and seeds the specified data into `https://developer.android.com/reference/android/content/SharedPreferences.html`, a Preferences DataStore, a SQLite database, or raw file storage. See `https://developer.android.com/reference/androidx/test/backup/BackupActionInputKeys` for the keys each storage type consumes.

Once the data is written, `https://developer.android.com/reference/android/app/backup/BackupManager.html#dataChanged()` is called so the platform knows the app has backup-eligible changes pending.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/test/backup/actions/PopulateStorageAction#PopulateStorageAction()()` |

| ### Public methods |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/test/backup/BackupDeviceActionResult` | `https://developer.android.com/reference/androidx/test/backup/actions/PopulateStorageAction#execute(android.content.Context,androidx.test.backup.BackupDeviceActionArgs)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/test/backup/BackupDeviceActionArgs args)` Runs the action payload. |

## Public constructors

### PopulateStorageAction

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/test-backup#1.0.0-alpha04)

```
public PopulateStorageAction()
```

## Public methods

### execute

```
public @NonNull BackupDeviceActionResult execute(@NonNull Context context, @NonNull BackupDeviceActionArgs args)
```

Runs the action payload.

Implementations should report a recoverable problem, such as a missing argument or a failed assertion, by returning `https://developer.android.com/reference/androidx/test/backup/BackupDeviceActionResult#failure(kotlin.String,kotlin.collections.Map)` rather than by throwing. The host treats a thrown exception as a crash of the action and reports it with a stack trace.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context` | application context on the target device |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/test/backup/BackupDeviceActionArgs args` | input arguments passed from the host orchestrator, keyed by `https://developer.android.com/reference/androidx/test/backup/BackupActionInputKeys` |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/test/backup/BackupDeviceActionResult` | result returned to the host, keyed by `https://developer.android.com/reference/androidx/test/backup/BackupActionOutputKeys` |