كيف يمكنني اكتشاف ما إذا كان المستخدم يستخدم طلبي لأول مرة؟

StackOverflow https://stackoverflow.com/questions/3762300

  •  04-10-2019
  •  | 
  •  

سؤال

أود أن أعرف ما إذا كان المستخدم يستخدم التطبيق لأول مرة. انا استخدم SharedPreferences, ، لكنني لست متأكدًا مما إذا كان لدي المنطق الصحيح.

كيف يمكنني ضبط بلدي isFirstLaunched Boolean إلى True عندما يتم تشغيل المستخدم لأول مرة ، ثم تم تعيينه على الفور على خطأ بعد الانتهاء من العمل؟

protected void onStart() {
        super.onStart();

        if(isFirstLaunch()){
            populateDefaultQuotes();

            //Save the preferences, isFirstLaunch will now be false
            SharedPreferences settings = getSharedPreferences(Constants.PREFS_NAME, 0);
            SharedPreferences.Editor editor = settings.edit();
            editor.putBoolean("isFirstLaunch", false);
            editor.commit();
        }

        setupUI();
        checkOrientation();
        restoreCache();
    }

    private void populateDefaultQuotes(){
        System.out.println("!!!!!! FIRST TIMER !!!!!!");
    }

    private boolean isFirstLaunch() {
        // Restore preferences
        SharedPreferences settings = getSharedPreferences(Constants.PREFS_NAME, 0);
        boolean isFirstLaunch = settings.getBoolean("isFirstLaunch", false);

        return isFirstLaunch;
    }
هل كانت مفيدة؟

المحلول

استبدال false حجة في getBoolean() بواسطة true, ، ثم المنطق سوف يناسب.

boolean isFirstLaunch = settings.getBoolean("isFirstLaunch", true); 

هذا سيعود true إذا لم يكن هناك مثل هذا الإعداد.

نصائح أخرى

يمكنك تسجيل A BroadcastReceiver للاستماع إلى intent.action_package_first_launch

http://developer.android.com/reference/android/content/intent.html#action_package_first_launch

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top