Xiaomi

Story

Traditionally, Xiaomi and their Android customization called MIUI belongs in the most troubled group on the market with respect to non-standard background process limitations and non-standard permissions. There are no APIs and no documentation for those extensions. In default settings, background processing simply does not work right and apps using them will break.

Note: Android One devices by Xiaomi work much better than MIUI-based devices. So, if you like Xiaomi, we definitely recommend looking for their Android One offering. “

Solution for users

App pinning / App locking

When you open the recent apps tray, drag your app downwards (it will be locked). So, even if you clear recent apps, it will not clear them from the background. Drag downwards again to clear your app from the background.
On some phones, you need to long-press Your app and then choose the padlock icon from the menu:

MIUI Optimizations

MIUI Optimizations were reported on MIUI 12 so far, but it is possible this option is present on older versions too (let us know, if you have found this option on your phone). It is hidden in the Developers settings, so you need to switch to developer mode first (10x tap on MIUI version in About phone).

MIUI 12

To let your app run in the background, make sure settings for your app look like the following (some

Some options might be missing for your app
(depends on the permissions the app needs).

MIUI 11

To let your app run in the background, make sure settings for your app look like the following:

MIUI 10

To let your app run in the background, make sure your settings look like the following (here for example is Sleep as Android):

Power management

Please enable:

  • Settings > Advanced Settings > Battery manager > Power plan is set to Performance

  • Device Settings > Advanced Settings > Battery Manager > Protected apps – your app needs to be Protected

  • Device Settings > Apps > your app > Battery > Power-intensive prompt and Keep running after screen off

  • Settings > Additional Settings > Battery & Performance > Manage apps’ battery usage and here:

  1. Switch Power Saving Modes to Off

  2. Choose the next options: Saving Power in The Background > Choose apps > select your app > Background Settings > No restrictions

App battery saver

Security > Battery > App Battery Saver > your app > No restriction

Autostart

(according to Xiaomi:

Open Security app > Permissions > Auto-start

Enable “Autostart” for desired apps.

Search for Your app and tap to enable

Hidden settings

On some XiaoMi phones, several settings options are hidden from you. Luckily, there are several apps on Play Store designed specifically for revealing these secret options and menus.

Solution for devs

Check Autostart permission

There is a way to check the state of Autostart permission on MIUI devices programtically. Devices (MIUI 10, 11, 12) are working for it.

https://github.com/XomaDev/MIUI-autostart

// make sure device is MIUI device, else an 
// exception will be thrown at initialization
Autostart autostart = new Autostart(applicationContext);

State state = autostart.getAutoStartState();

if (state == State.DISABLED) {
    // now we are sure that autostart is disabled
    // ask user to enable it manually in the settings app    
} else if (state == State.ENABLED) {
    // now we are also sure that autostart is enabled
}

Badge

Copy embed code to clipboard