10

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>
Jason Saruulo
  • 1,807
  • 4
  • 19
  • 21
Alis
  • 143
  • 1
  • 2
  • 10

2 Answers2

17

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.

Brent K.
  • 684
  • 7
  • 15
  • this is the more effective and right answer. Persistent property is ignored unless you're building a system application (usually you can't do this unless working on your own AOSP build or, maybe, on a rooted android device) – amonthedeamon Nov 28 '19 at 14:49
  • Hello @Brent.K I am doing system apps but where exactly do I need to change it to make it persistant to work in framework side? – Shadow Jan 09 '20 at 13:44
  • 1
    Hi @Shadow This is a property of your AndroidManifest.xml. It goes in the application tag: – Brent K. Jan 10 '20 at 14:22
11

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.

IntelliJ Amiya
  • 73,189
  • 14
  • 161
  • 193