2017-04-05 1 views
0

두 가지 액티비티로 된 간단한 앱이 있습니다. 여기 매니페스트입니다 : u는 볼 수, 링크 "https://stackoverflow.com/questions/ask"를 클릭 할 때액티비티 배킹의 설명 할 수없는 동작

<application> 
<activity 
      android:name=".ActivityA" 
      android:theme="@style/AppTheme.NoActionBar.Map"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".ActivityB" 
      android:theme="@style/AppTheme.NoActionBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.BROWSABLE" /> 
       <data android:host="https://stackoverflow.com/" 
         android:scheme="http" 
         android:pathPrefix="https://stackoverflow.com/questions/ask" 
        /> 
      </intent-filter> 
     </activity> 
</> 

- 내 응용 프로그램이 두 번째 활동을 엽니 다. 는 ActivityB에서 나는 방법 onBackPressed 오버라이드 (override) :

override fun onBackPressed() { 
     if(isTaskRoot){ 
       startActivity(Intent(this, MapActivity::class.java)) 
       finish() 
      } else { 
       super.onBackPressed() 
      } 
    } 

그래서 두 번째 활동이 링크에서 시작하고 난 다시 BTN, ActivityA가 열리고 ActivityB 완료를 클릭합니다.

첫 번째 모습 모두 괜찮아 보이지만,이 다음에 내가 집에 btn을 누른 다음 스택에서 앱을 다시 실행하면 ActivityB가 ActivityA 대신 다시 열립니다.

왜 이런 일이 발생하고 어떻게 해결할 수 있는지 설명해주십시오. 감사!

UPDATE 는 ActivityB에서 onBackPressed 후, ActivityA를 개방하고 내가 대신 HomeBtn을 onBackBtn 클릭 때문에 응용 프로그램이 닫힙니다. 이 경우 스택에서 다시 실행 한 후 ActivityB가 열립니다.

답변

0

ActivityB에서 집 btn을 누르면 Android에서 활동 라이프 사이클에 onPause() 메서드를 호출하고이 시점에서 앱이 activityB에서 일시 중지됩니다. onBackPressed()을 무시한 것처럼 파괴되지 않습니다. 따라서 앱을 다시 실행하면 SO가 onResume() (onResume())을 ActivityB에 다시 게시합니다. 이 동작을 변경하려면 수동으로 작업을 완료 할 때 onPause() 메서드를 재정의해야합니다.

+0

나는 ActivityB에서 onBackPressed –

+0

작은 업데이트를 사용하여 보았습니다. –

+0

다른 방법으로 finish 메서드를 호출하려고 시도합니다. else {finish()} –

관련 문제