• [안드로이드 스튜디오] 앱 처음 사용하는 사용자 확인 (SharedPreferences)

    2021. 7. 29.

    by. 하루플스토리

    반응형

    안녕하세요, 하루플입니다.

    내가 개발한 앱을 최초로 이용하는 사용자를 확인하는 방법을 알려드리겠습니다.
    이 방법은 OnBoardingActivity와 같은 최초 사용자에게 앱에 대한 설명을 나타낼 때 유용하게 이용할 수 있습니다.

    그러기 위해서는 사용자가 내 앱을 이용했는지 기록이 저장되어야 합니다.
    이 때 DB를 사용하지 않고 안드로이드 앱 자체에 기록하여 사용할 수 있는 SharedPreferences 를 이용해보겠습니다.

    예시 프로그램 구조


    다음과 같이 onCreate() 내부에 작성하면 됩니다.
    아래 소스코드는 오로지 처음 사용자를 어떻게 확인하는지만 알려드리기 위해
    SplashActivity에서 사용하는 몇초후 다른 액티비티로 이동하는 코드는 뺏습니다.

    public class Splash_Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); //xml , java 소스 연결 FirstUserCheak(); //처음 사용자 체크하는 메소드 } } public void FirstUserCheak(){ SharedPreferences sharedPreferences = getSharedPreferences("isFirst", Activity.MODE_PRIVATE); boolean first = sharedPreferences.getBoolean("isFirst", false); if(first == false){ Log.d("Is first Time?", "first"); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean("isFirst", true); editor.commit(); //앱 최초 실행 시 하고싶은 작업 Intent intent = new Intent(getApplicationContext(), OnboardingActivity.class); startActivity(intent); //다음화면으로 넘어감 finish(); } else { //최초 실행이 아닌 경우 Log.d("Is first Time?", "not first"); Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); //다음화면으로 넘어감 finish(); } } }



    만약 저처럼 SplashActivity에서 2초후 다른 화면으로 넘어갈 때 다른사용자를 체크하고 싶다면 아래 코드를 참고하세요!

    public class Splash_Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); //xml , java 소스 연결 Handler handler = new Handler(); handler.postDelayed(new Runnable(){ @Override public void run() { FirstUserCheak(); } },2000); //1초 뒤에 run객체 실행하도록 함 } @Override protected void onPause(){ super.onPause(); finish(); } public void FirstUserCheak(){ SharedPreferences sharedPreferences = getSharedPreferences("isFirst", Activity.MODE_PRIVATE); boolean first = sharedPreferences.getBoolean("isFirst", false); if(first == false){ Log.d("Is first Time?", "first"); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean("isFirst", true); editor.commit(); //앱 최초 실행 시 하고싶은 작업 Intent intent = new Intent(getApplicationContext(), OnboardingActivity.class); startActivity(intent); //다음화면으로 넘어감 finish(); } else { //최초 실행이 아닌 경우 Log.d("Is first Time?", "not first"); Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); //다음화면으로 넘어감 finish(); } } }


    다른 궁금한 점 있으시면 댓글로 부탁드립니다!

    반응형

    댓글