2012-04-16 3 views
1

앱을 시작할 때 스플래시 화면 활동이 있습니다. 시작 스플래시 화면에 finish()가 표시되어 마지막 남아있는 작업에서 BACK을 누르면 더 이상 시작 스플래시 화면이 표시되지 않습니다. 하지만 앱을 직접 종료하는 대신 앱이 시작 스플래시 화면과 다른 이미지를 가진 exit 스플래시 화면을 표시하도록하고 그 후에 앱이 곧 종료됩니다.사용자가 다른 활동에서 "뒤로"를 클릭하면 새로운 활동이 시작됩니다.

이렇게 되길 원합니다. 스플래시 화면 1 (시작) -> 활동 A -> 활동 B -> (뒤로 가기) -> 활동보기 A -> (다시 뒤로) -> 스플래시 화면 2 (끝)

어떻게하는가?

활동 A의 뒤로 단추를 무시해야합니까? 아니면 사용자가 활동 A의 뒤로 단추를 누르면 다른 활동을 표시 할 다른 방법이 있습니까?

+0

구현 정보가 제공됩니다. Activity A의 onBackPressed()를 재정의하십시오. 그러나 Activity A가 다른 곳에서는 인스턴스화되지 않았는지 확인하십시오. 그렇지 않으면 2 차 스플래시 화면이 중간에 나타납니다. – Shubhayu

+0

예, 활동 A가 다른 곳에서 인스턴스화되지 않도록 확인합니다. 알림을 보내 주셔서 감사합니다. – efransiscus

답변

5

활동 A의 뒤로 버튼을 시작 2의 활동 코드로 바꾸지 않는 이유는 무엇입니까? 나는 이것이 유일한 해결책이라고 생각한다. 예를 들어

: 활동 onBackPressed()

@Override 
public void onBackPressed() { 
    Intent setIntent = new Intent(ActivityA.this, Splash2.class); 
    startActivity(setIntent); 
    finish(); 
} 
+0

세부 정보 지침을 제공해 주셔서 감사합니다. 무슨 뜻 이냐면 내일 아침에 시도해 보겠습니다 :-) – efransiscus

1

startActivity를 추가하여 finish() 메소드를 재정의 할 수 있습니다.

0

타고 넘는 방법. 이 안에는 스플래시 화면 2/END 활동을 시작할 수 있습니다.

1

으로 간단한

  1. 로하면 최종 시작 화면

+0

onActivityResult가 A에서만 온다고 확신 할 수 있도록 고유 한 요청 코드로 A를 시작하십시오. 귀하의 경우에 A가 스플래시에서 시작하는 유일한 화면 인 경우 필요하지 않습니다. 그러나 좋은 연습 – Javanator

+0

+1 그것의 또한 해결책 일 것입니다. –

+0

onActivityResult가 A에서만 오는 것을 보장 할 수 있도록 고유 한 요청 코드로 A를 시작하는 방법은 무엇입니까? 오버 라이딩 비트에 대해 아직 이해하지 못했지만 onActivityResult를 사용하는 방법은 아직 알지 못합니다. * 난 아직도 멍청이야, 미안해. * – efransiscus

1

에 따라에게 보여주기 시작의

  • 재정의 onActivityResult를 마무리 호출하지 않고에 startActivityForResult 메소드로 시작에서 활동 A를 호출 사용자가 종료 할 때 액티비티 A에만있는 경우 해당 액티비티의 onKeyDown을 재정의하거나 액티비티에있는 액티비티에서 재정의 할 수 있습니다.

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
         startActivity(new Intent("com.android.splashscreen")); 
         finish(); 
        } 
    } 
    

    엔드 스플래시 화면 만들기 및 시작.

  • 관련 문제