Есть ли в Android метод onInstall?

Я пытаюсь регистрировать установки моего приложения с помощью Firebase с помощью этого простого кода ниже:

firebaseAnalytics.logEvent("foo", bundle);

Однако я не уверен, куда поместить этот код. Кто-нибудь знает о методе onInstall в классе Application?

Или есть другой, более простой способ регистрировать установки с помощью Firebase?

Спасибо!

«Кто-нибудь знает о методе onInstall в классе Application?» -- здесь ничего нет. Ничто из вашего кода не запускается, когда приложение установлено, только когда пользователь впервые запускает ваше приложение.

CommonsWare 22.07.2019 17:26

Да, это имеет смысл

Melron 22.07.2019 17:26

Консоль игрового магазина уже дает вам хорошую статистику. Однако вы можете регистрировать обновления своего собственного приложения с помощью широковещательного действия ACTION_PACKAGE_INSTALL.

Reaper 22.07.2019 17:27

ACTION_PACKAGE_INSTALL устарел на уровне API 15. (ссылка)

Chrisvin Jem 22.07.2019 17:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
147
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

public class MyActivity extends Activity {

    SharedPreferences prefs = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Perhaps set content view here

        prefs = getSharedPreferences("com.mycompany.myAppName", MODE_PRIVATE);
    }

    @Override
    protected void onResume() {
        super.onResume();

        if (prefs.getBoolean("firstrun", true)) {
            firebaseAnalytics.logEvent("foo", bundle);
            prefs.edit().putBoolean("firstrun", false).commit();
        }
    }
}

Код, на который ссылается этот ТАК ответ.

В том же ТАК вопрос есть еще один ответ, в котором объясняется, как различать первый запуск и последующие обновления, я просто приведу ссылку на этот ТАК ответ здесь для справки.

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

Кроме того, теоретически вы можете записать файл прямо на устройство. Но тогда вам нужно будет получить разрешение на запись, и определенно не стоит создавать и оставлять файл на устройстве.

P.S. Чтобы ответить на вопрос, нет, у Android нет метода onInstall.

Спасибо за ответ, но после того, как пользователь почистит кеш, общие настройки тоже не удалятся?

Melron 22.07.2019 18:02

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

Chrisvin Jem 22.07.2019 18:33

Теоретически вы можете записать файл прямо на устройство. Но тогда вам нужно будет получить разрешение на запись, и определенно не стоит создавать и оставлять файл на устройстве.

Chrisvin Jem 22.07.2019 18:42

Большое спасибо приятель!

Melron 22.07.2019 19:02

Нет проблем, приятель, отметьте вопрос как правильный и проголосуйте, если он ответил на ваш вопрос. Ваше здоровье.

Chrisvin Jem 22.07.2019 19:16

Другие вопросы по теме