Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/android/app/GameState#constants) \| [Inherited Constants](https://developer.android.com/reference/android/app/GameState#inhconstants) \| [Fields](https://developer.android.com/reference/android/app/GameState#lfields) \| [Ctors](https://developer.android.com/reference/android/app/GameState#pubctors) \| [Methods](https://developer.android.com/reference/android/app/GameState#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/app/GameState#inhmethods)

# GameState

*** ** * ** ***


`
public

final

class
GameState
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


implements

https://developer.android.com/reference/android/os/Parcelable


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.app.GameState |

<br />

*** ** * ** ***

State of the game passed to the GameManager.

This includes a top-level state for the game (indicating if the game can be interrupted without
interfering with content that can't be paused). Since content can be loaded in any state, it
includes an independent boolean flag to indicate loading status.

Free-form metadata (as a Bundle) and a string description can also be specified by the
application.

## Summary

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/app/GameState#MODE_CONTENT` Indicates that the current content shown is not gameplay related. |
| `int` | `https://developer.android.com/reference/android/app/GameState#MODE_GAMEPLAY_INTERRUPTIBLE` Indicates if the game is in active, but interruptible, game play. |
| `int` | `https://developer.android.com/reference/android/app/GameState#MODE_GAMEPLAY_UNINTERRUPTIBLE` Indicates if the game is in active user play mode, which is real time and cannot be interrupted. |
| `int` | `https://developer.android.com/reference/android/app/GameState#MODE_NONE` No mode means that the game is not in active play, for example the user is using the game menu. |
| `int` | `https://developer.android.com/reference/android/app/GameState#MODE_UNKNOWN` Default Game mode is unknown. |

| ### Inherited constants |
|---|
| From interface `https://developer.android.com/reference/android/os/Parcelable` |---|---| | `int` | `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` Descriptor bit used with `https://developer.android.com/reference/android/os/Parcelable#describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor. | | `int` | `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` Flag for use with `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`". | |

| ### Fields ||
|---|---|
| ` public static final https://developer.android.com/reference/android/os/Parcelable.Creator<https://developer.android.com/reference/android/app/GameState>` | `https://developer.android.com/reference/android/app/GameState#CREATOR` Implement the parcelable interface. |

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/app/GameState#GameState(boolean,%20int)(boolean isLoading, int mode) ` Create a GameState with the specified loading status. |
| ` https://developer.android.com/reference/android/app/GameState#GameState(boolean,%20int,%20int,%20int)(boolean isLoading, int mode, int label, int quality) ` Create a GameState with the given state variables. |

| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/android/app/GameState#describeContents()() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
| ` int` | ` https://developer.android.com/reference/android/app/GameState#getLabel()() ` |
| ` int` | ` https://developer.android.com/reference/android/app/GameState#getMode()() ` |
| ` int` | ` https://developer.android.com/reference/android/app/GameState#getQuality()() ` |
| ` boolean` | ` https://developer.android.com/reference/android/app/GameState#isLoading()() ` |
| ` void` | ` https://developer.android.com/reference/android/app/GameState#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel parcel, int flags) ` Flatten this object in to a Parcel. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||
| From interface ` https://developer.android.com/reference/android/os/Parcelable ` |---|---| | ` abstract int` | ` https://developer.android.com/reference/android/os/Parcelable#describeContents()() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. | | ` abstract void` | ` https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags) ` Flatten this object in to a Parcel. | ||

## Constants

### MODE_CONTENT

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MODE_CONTENT
```

Indicates that the current content shown is not gameplay related. For example it can be an
ad, a web page, a text, or a video.

<br />

Constant Value:

4
(0x00000004)


### MODE_GAMEPLAY_INTERRUPTIBLE

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MODE_GAMEPLAY_INTERRUPTIBLE
```

Indicates if the game is in active, but interruptible, game play.

<br />

Constant Value:

2
(0x00000002)


### MODE_GAMEPLAY_UNINTERRUPTIBLE

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MODE_GAMEPLAY_UNINTERRUPTIBLE
```

Indicates if the game is in active user play mode, which is real time and cannot be
interrupted.

<br />

Constant Value:

3
(0x00000003)


### MODE_NONE

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MODE_NONE
```

No mode means that the game is not in active play, for example the user is using the game
menu.

<br />

Constant Value:

1
(0x00000001)


### MODE_UNKNOWN

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MODE_UNKNOWN
```

Default Game mode is unknown.

<br />

Constant Value:

0
(0x00000000)


## Fields

### CREATOR

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Creator<GameState> CREATOR
```

Implement the parcelable interface.

<br />

## Public constructors

### GameState

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public GameState (boolean isLoading, 
                int mode)
```

Create a GameState with the specified loading status.

<br />

| Parameters ||
|---|---|
| `isLoading` | `boolean`: Whether the game is in the loading state. <br /> |
| `mode` | `int`: The game state mode of type @GameStateMode. Value is one of the following: - `https://developer.android.com/reference/android/app/GameState#MODE_UNKNOWN` - `https://developer.android.com/reference/android/app/GameState#MODE_NONE` - `https://developer.android.com/reference/android/app/GameState#MODE_GAMEPLAY_INTERRUPTIBLE` - `https://developer.android.com/reference/android/app/GameState#MODE_GAMEPLAY_UNINTERRUPTIBLE` - `https://developer.android.com/reference/android/app/GameState#MODE_CONTENT` |

### GameState

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public GameState (boolean isLoading, 
                int mode, 
                int label, 
                int quality)
```

Create a GameState with the given state variables.

<br />

| Parameters ||
|---|---|
| `isLoading` | `boolean`: Whether the game is in the loading state. <br /> |
| `mode` | `int`: The game state mode. Value is one of the following: - `https://developer.android.com/reference/android/app/GameState#MODE_UNKNOWN` - `https://developer.android.com/reference/android/app/GameState#MODE_NONE` - `https://developer.android.com/reference/android/app/GameState#MODE_GAMEPLAY_INTERRUPTIBLE` - `https://developer.android.com/reference/android/app/GameState#MODE_GAMEPLAY_UNINTERRUPTIBLE` - `https://developer.android.com/reference/android/app/GameState#MODE_CONTENT` |
| `label` | `int`: An optional developer-supplied enum e.g. for the current level. <br /> |
| `quality` | `int`: An optional developer-supplied enum, e.g. for the current quality level. <br /> |

## Public methods

### describeContents

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int describeContents ()
```

Describe the kinds of special objects contained in this Parcelable
instance's marshaled representation. For example, if the object will
include a file descriptor in the output of `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`,
the return value of this method must include the
`https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` bit.

<br />

| Returns ||
|---|---|
| `int` | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or - `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` |

### getLabel

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getLabel ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | The developer-supplied enum, e.g. to indicate level or scene. The default value (if not supplied) is -1. <br /> |

### getMode

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getMode ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | The game state mode. Value is one of the following: - `https://developer.android.com/reference/android/app/GameState#MODE_UNKNOWN` - `https://developer.android.com/reference/android/app/GameState#MODE_NONE` - `https://developer.android.com/reference/android/app/GameState#MODE_GAMEPLAY_INTERRUPTIBLE` - `https://developer.android.com/reference/android/app/GameState#MODE_GAMEPLAY_UNINTERRUPTIBLE` - `https://developer.android.com/reference/android/app/GameState#MODE_CONTENT` |

### getQuality

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getQuality ()
```

<br />

<br />

| Returns ||
|---|---|
| `int` | The developer-supplied enum, e.g. to indicate the current quality level. The default value (if not suplied) is -1. <br /> |

### isLoading

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean isLoading ()
```

<br />

<br />

| Returns ||
|---|---|
| `boolean` | If the game is loading assets/resources/compiling/etc. <br /> |

### writeToParcel

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void writeToParcel (Parcel parcel, 
                int flags)
```

Flatten this object in to a Parcel.

<br />

| Parameters ||
|---|---|
| `parcel` | `Parcel`: This value cannot be `null`. <br /> |
| `flags` | `int`: Additional flags about how the object should be written. May be 0 or `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` |