사실 로딩이 필요없는 부분인데, 그럴 듯한 연출을 위해 어플리케이션 처음 시작 시 로딩화면을 보여 준뒤 어떤 작업을 하고 싶습니다.

 

 

대충 A 라는 액티비티로 시작한다고하면

 

A->   B 에서 B를 4초간 보여준 뒤,  A 에서  특정 조건에 따라 C로 바로 넘어가거나 , A의 나머지 부분을 실행합니다.

지금은 구현을

 

A 액티비티의 onCreate에 맨 처음에  startActivity(new Intent(Danger.this, splash.class)); 를 호출하고

 

splash 액티비티는

 

public class splash extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        initialize();
    }

    private void initialize()
    {
        Handler handler =    new Handler()
        {
         @Override
          public void handleMessage(Message msg)
          {
           finish();   
          }
         };
        
         handler.sendEmptyMessageDelayed(0, 3000);   
    }
}

 

이런 구성입니다.  

 

난관에 봉착하였는데, 그것은   앞서 말한 특정 조건에 부합하지 않아 A의 액티비티를 수행하게 될 때는 3초간 잘 로딩을 하는데

C 로 넘어가는 케이스에는 이 splash 가 잘 작동하지 않더라구요... 게다가 더 큰 문제는

 

나중에  C 액티비티를 종료(finish()) 하고나서 A로 돌아가지 않고 바로 꺼지는 것을 원해서 A에서 C를 호출 할 때 finish()를 했는데 이렇게 하니까  제대로 종료가 되지 않고  C가 종료되면서 A로 돌아오고  다시 Splash 를 하게 되더라구요 .... 이런상황 어떻게 대처해야하나 감이 오질 않아 질문드립니다.