Alis
Alis

Reputation: 323

Android What is use of persistent?

What is use of android:persistent="true" properties?

<application
    android:fullBackupContent="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:persistent="true"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme1">
</application>

Upvotes: 17

Views: 21836

Answers (3)

Matthew
Matthew

Reputation: 11

There is a big danger with this, and very poorly documented. If you tag your system app as persistent, it can not be removed/updated/replaced or anything. It is locked in for good on the device and stays running. From a developer perspective, I am having great dificulty updating it to a newer version. Once installed in your device image, that is it.

Upvotes: 1

Brent K.
Brent K.

Reputation: 1086

Unfortunately, for most developers there is no use. The official guide for android:persistent has a weakly worded comment that it is "intended" for system apps. To be clear, this property is ignored unless you are a system app.

You can see in the commit where flag checking was added to PackageManager, this requires both the persistent flag and the system app flag. If your app only has one of these, it will not be treated as persistent.

So this property is only useful for platform developers and hardware vendors. Sorry.

But what does it do? This property allows you to start a background service on Oreo and prevents it from being automatically killed.

Upvotes: 30

IntelliJ Amiya
IntelliJ Amiya

Reputation: 75788

Read official guide line about android:persistent

Whether or not the application should remain running at all times — "true" if it should, and "false" if not. The default value is "false". Applications should not normally set this flag; persistence mode is intended only for certain system applications.

Upvotes: 13

Related Questions