Как контролировать запуск приложений Android - уроки кодинга

Как контролировать запуск приложений Android - уроки кодинга

Проблема

У вас есть приложение, которое собирает данные об использовании приложений анонимно, поэтому вы обязаны информировать пользователей об этом при первом запуске приложения.

Решение

Храните общие настройки, сохраняя их значения только один раз. Каждый раз, когда приложение запускается, оно проверяет эти значения в настройках.

Если значения установлены (доступны), значит, это не первый запуск приложе­ния; в противном случае это первый запуск.

Обсуждение

Вы можете управлять жизненным циклом приложения, используя класс прило­жения для платформы Android. Мы будем использовать общие настройки в качестве постоянного хранилища для хранения значения первого запуска.

Мы будем хранить булев флаг в настройках, если это первый запуск. Когда прило­жение установлено и используется в первый раз, у него нет никаких настроек. Они будут созданы для нас. В этом случае флаг примет значение true. После получения флага true мы можем обновить этот флаг значением false, поскольку нам больше не нужно, чтобы оно было истинным. См. пример 1.

Пример 1. Настройки первого запуска

public class MyApp extends Application {

    SharedPreferences mPrefs;

    @Override
    public void onCreate() {
        super.onCreate();

        Context mContext = this.getApplicationContext();
        // 0 = закрытый режим. Эти настройки может читать только приложение.
        mPrefs = mContext.getSharedPreferences("myAppPrefs", 0);


        // Код инициализации приложения
    }

    public boolean getFirstRun() {
        return mPrefs.getBoolean("firstRun", true);
    }

    public void setRunned() {
        SharedPreferences.Editor edit = mPrefs.edit();
        edit.putBoolean("firstRun", false);
        edit.commit();
    }
}

Этот флаг из настроек будет проверен в активности запуска, как показано в при­мере 2.

Пример 2. Проверка первого запуска

if(((MyApp) getApplication()).getFirstRun()) {
        // Это первый запуск
        ((MyApp) getApplication()).setRunned();

        // Первое выполнение вашего кода 

        }
    else {
        // Это не первый запуск на вашем устройстве
    }

Даже если вы публикуете обновления для приложения и пользователь устанавливает обновления, эти настройки не будут изменены, поэтому код будет работать только для первого запуска после установки. Последующие обновления приложения не приведут код в действие, если только пользователь не удалил и не переустановил приложение вручную.

Вы можете использовать подобный метод для распространения условно бесплатных версий приложения для платформы Android (т.е. ограничить количество пробных запусков приложения). В этом случае необходимо использовать значение целых чисел в настройках, чтобы указать количество испытаний. Каждое испытание обновляло бы предпочтения. После достижения желаемого значения вы заблокируете использование приложения до тех пор, пока пользователь не внесет плату за использование.

Вас заинтересует / Intresting for you:

Версии платформы Android
Версии платформы Android 2477 просмотров Илья Дергунов Sun, 04 Nov 2018, 14:44:59
Источники примеров кода для со...
Источники примеров кода для со... 3534 просмотров Валерий Павлюков Sat, 24 Nov 2018, 12:19:04
О платформе Android
О платформе Android 4857 просмотров Илья Дергунов Mon, 29 Oct 2018, 17:07:02
Запросы разрешений от системы ...
Запросы разрешений от системы ... 4446 просмотров dbstalker Sun, 24 Feb 2019, 06:24:29
Войдите чтобы комментировать

dbstalker аватар
dbstalker ответил в теме #9485 4 года 5 мес. назад
Отличный пример! Очень часто нужно отслеживать первый запуск приложения на Андроиде. Спс.