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

Я разрабатываю мобильное приложение, используя ApacheCordova/Phonegap. Мне нужна функция, которая отправляет мне SMS один раз за установку. Если я добавлю свою функцию в "DeviceReady", она будет запускаться при каждом открытии приложения. Есть ли какое-либо решение для функции, которая будет запущена при установке приложения ИЛИ при первом запуске?

Любое предложение будет оценено.

4 ответа

Решение

Я добавил поле в локальное хранилище и при запуске просто проверяю, существует ли это поле. Так что-то вроде этого:

if (window.localStorage.getItem("installed") == undefined) {
   /* run function */
   window.localStorage.setItem("installed", true);
}

Редактировать: причина, по которой я предпочитаю это другим методам, заключается в том, что это работает на iOS, WP и т. Д., А не только на Android

Проверьте, используется ли метод в первый раз, а затем выполните действие, если этот метод определит, что это первый раз.

Пример:

Метод isFirstTime()

private boolean isFirstTime()
    {
    SharedPreferences preferences = getPreferences(MODE_PRIVATE);
    boolean ranBefore = preferences.getBoolean("RanBefore", false);
    if (!ranBefore) {

        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean("RanBefore", true);
        editor.commit();
        // Send the SMS

        }
    return ranBefore;

    }

Вы можете добавить его в свой onCreate()

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    topLevelLayout = findViewById(R.id.top_layout);



   if (isFirstTime()) {
        topLevelLayout.setVisibility(View.INVISIBLE);
    }

Это должно быть то, что вы ищете:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(!prefs.getBoolean("firstTime", false)) 
{
// run your one time code
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}

Используйте некоторое логическое значение, если его true, не вызывайте эту функцию другим мудрым вызовом, что пример функции здесь

if(smssent!=true)
{

//call sms sending method

}


else

{

//just leave blank or else notify user using some toast message

}

Примечание:- хранилище логических значений в некоторых базах данных, таких как sharedprefernce или sqllite, files....

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