Удаление приложения из списка задач программным способом при переходе в фоновый режим (API <= 20) - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь удалить свое приложение из последних (список приложений, который вы получаете, когда нажимаете «квадратную» кнопку, просто чтобы избежать недоразумений). Я нашел фрагмент кода ниже, чтобы сделать это, и он работает хорошо. Проблема в том, что приложение имеет минимум SDK = 19, поэтому оно не будет работать на старых устройствах. Я не могу найти что-либо подобное в Интернете. кто-нибудь знает способ?

РЕДАКТИРОВАТЬ: я знаю, что я могу сделать это, используя новое действие и закрыв его немедленно, но я хотел бы избежать этого

РЕДАКТИРОВАТЬ 2: это должно быть сделано программно, поскольку это зависит от предпочтений пользователя

//remove the app from recents. TODO-background doesn't remove if app list button is pressed instead of home
if(android.os.Build.VERSION.SDK_INT >= 21) {
    ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    if (am != null) {
        List<ActivityManager.AppTask> tasks = am.getAppTasks();
        if (tasks != null && tasks.size() > 0) {
            tasks.get(0).setExcludeFromRecents(true);
        }
    }
} else {
    //TODO-background need to find a way for API 19 and 20
}

PS Если кто-то знает способ решения первой проблемы TODO, он будет рад (в конце концов я открою другой вопрос)

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018
String nameOfProcess = "com.accurate.compass.directionfinder.map";
    ActivityManager  manager = (ActivityManager)getActivity().getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> listOfProcesses = manager.getRunningAppProcesses();
    for (ActivityManager.RunningAppProcessInfo process : listOfProcesses)
    {
        if (process.processName.contains(nameOfProcess))
        {
            // Ends the app
            manager.restartPackage(process.processName);
            break;
        }
    }
0 голосов
/ 26 апреля 2018

Если вы просто хотите, чтобы он не отображался в последних статьях, вы должны использовать простой однострочный код: исключить из последних


В поиске файла манифеста, где находится тег активности вашего приложения:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/my_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity" 
              android:excludeFromRecents= "true" >

Примечание в приведенном выше коде android:excludeFromRecents= "true" - это именно то, что вам нужно, если вы не хотите, чтобы ваше приложение отображалось в последних текстах при закрытии.

Работает с API 11 до API 27. Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...