-
반응형
안녕하세요, 하루플입니다.
내가 개발한 앱을 최초로 이용하는 사용자를 확인하는 방법을 알려드리겠습니다.
이 방법은 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(); } } }
다른 궁금한 점 있으시면 댓글로 부탁드립니다!반응형'개발 > Android' 카테고리의 다른 글
[안드로이드 스튜디오] 목록/내용을 접었다 펼 수 있는 Expandable Recycler View 사용 예제 (1) 2021.07.30 안드로이드 스튜디오 GIF 파일 재생하기 (1) 2021.07.29 안드로이드 스튜디오 ViewPager2를 활용한 가로 슬라이더 (2) 2021.07.27 안드로이드 스튜디오 스마트폰 연결해 가상디바이스(AVD)로 사용하기 (2) 2021.02.02 안드로이드 스튜디오 유튜브(Youtube) 레이아웃에 띄우기, YouTubeAndroidPlayerAPI 사용하기 (4) 2021.01.26 댓글