마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

액티비티 실행 순서 질문입니다 부탁드립니다

0 추천
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        startActivity(new Intent(this, SplashActivity.class)); //로딩화면 액티비티

        SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE); //최초 실행일경우
        pref.getString("check", "");
        if (pref.getString("check", "").isEmpty()) {
            startActivity(new Intent(this, StartActivity.class)); //최초실행일경우 액티비티 스타트
        }
        SharedPreferences.Editor editor = pref.edit();
        editor.putString("check", "exist");
        editor.commit();

 

스플래시액티비티에서 2초후에 finish 되게 해놨습니다. 로딩화면후 메인액티비티가 실행됩니다

제가 원하는건 최초 실행일 경우 로딩화면후 최초실행액티비티 후 메인액티비티가 실행되게 하고싶은데

지금은 최초실행액티비티 후 로딩후에 메인액티비티가 실행됩니다

안드로이드를 어제 처음 시작해서 부족한점이 많습니다 답변 부탁드립니다
345r3452sx (180 포인트) 님이 2016년 4월 3일 질문

1개의 답변

0 추천
제가 알기로는 현재 실행중인 액티비티에서 다른 액티비티가 실행이 되면 기존에 있던 액티비티는 다른 생명주기로 빠지는 걸로 알고 있거든요. 저도 초보라서 맞을지는 모르겠네요.

startActivity(new Intent(this, StartActivity.class)); //최초실행일경우 액티비티 스타트

이 부분이 실행되면서 if문 밑에 "check" 에 "exist" 가 입력이 안될거라 생각이 듭니다.

-- 수정 --

SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE); //최초 실행일경우

pref.getString("check", "");

if (pref.getString("check", "").isEmpty()) {

    SharedPreferences.Editor editor = pref.edit();

    editor.putString("check", "exist");

    editor.commit();

    startActivity(new Intent(this, StartActivity.class)); //최초실행일경우 액티비티 스타트

}

 

이렇게 바꿔 보시고 한번 해 보시겠어요?
영양당근 (1,560 포인트) 님이 2016년 4월 4일 답변
영양당근님이 2016년 4월 4일 수정
...