# Class Lifecycle

java.lang.Object
com.codename1.system.Lifecycle

public class Lifecycle extends Object
Optional helper class that implements the Codename One lifecycle methods with reasonable default implementations to help keep sample code smaller.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Lifecycle()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `bindCrashProtection()`
  Callback that can be overriden to disable or modify crash protection
  `void`
  `destroy()`
  Callback when the app is destroyed
  `protected Form`
  `getCurrentForm()`
  Returns the form currently stored by this `Lifecycle` instance for application resume handling.
  `protected int`
  `getNetworkThreadCount()`
  Returns the default number of network thread count
  `Resources`
  `getTheme()`
  The theme instance
  `protected String`
  `getThemeName()`
  Returns the name of the global theme file, by default it's "/theme".
  `protected void`
  `handleNetworkError(NetworkEvent err)`
  Invoked on a network error callback
  `void`
  `init(Object context)`
  Invoked when the app is "cold launched", this acts like a constructor
  `void`
  `onReceivedSharedContent(SharedContent content)`
  Invoked when the app is launched or resumed because the user shared content (text, a URL, a file or an image) into it from another application.
  `void`
  `runApp()`
  This method is invoked by start to show the first form of the application
  `protected void`
  `setCurrentForm(Form current)`
  The current form within the application lifecycle which possibly differs from the one in the implementation
  `void`
  `start()`
  Default start callback that's invoked on application resume
  `void`
  `stop()`
  Callback when the app is suspended

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Lifecycle

    public Lifecycle()

- ## Method Details

  - ### init

    public void init(Object context)

    Invoked when the app is "cold launched", this acts like a constructor

    ###### Parameters

    - `context`: some OSs might pass a native object representing platform internal information

  - ### bindCrashProtection

    protected void bindCrashProtection()
    Callback that can be overriden to disable or modify crash protection

  - ### getNetworkThreadCount

    protected int getNetworkThreadCount()

    Returns the default number of network thread count

    ###### Returns

    currently two threads

  - ### getThemeName

    protected String getThemeName()

    Returns the name of the global theme file, by default it's "/theme". Can be overriden by subclasses to load a different file name

    ###### Returns

    "/theme"

  - ### getTheme

    public Resources getTheme()

    The theme instance

    ###### Returns

    the theme

  - ### handleNetworkError

    protected void handleNetworkError(NetworkEvent err)

    Invoked on a network error callback

    ###### Parameters

    - `err`: the network error event

  - ### start

    public void start()
    Default start callback that's invoked on application resume

  - ### runApp

    public void runApp()
    This method is invoked by start to show the first form of the application

  - ### stop

    public void stop()
    Callback when the app is suspended

  - ### destroy

    public void destroy()
    Callback when the app is destroyed

  - ### onReceivedSharedContent

    public void onReceivedSharedContent(SharedContent content)

    Invoked when the app is launched or resumed because the user shared content (text, a URL, a file or an image) into it from another application. The default implementation does nothing; override it to handle the shared payload.

    This is delivered on the EDT. File and image items are exposed as `com.codename1.io.FileSystemStorage` paths.

    ###### Parameters

    - `content`: the shared content

  - ### getCurrentForm

    protected Form getCurrentForm()

    Returns the form currently stored by this `Lifecycle` instance for application resume handling.

    In most application code, use `CN.getCurrentForm()` instead, as it returns the form that is actually displayed on the screen. This method is only useful when subclassing `Lifecycle` and you need to inspect or customize the form remembered by `stop()` and restored by `start()`, which may differ from the form currently displayed by the Codename One implementation.

    ###### Returns

    the form stored in this lifecycle, or `null` if no form has been stored

  - ### setCurrentForm

    protected void setCurrentForm(Form current)

    The current form within the application lifecycle which possibly differs from the one in the implementation

    ###### Parameters

    - `current`: the new current Form