2013-08-08 3 views
1

Activity A이 있고 Activity B에서 호출되었습니다. 매니페스트 활동 A에는 configChanges android:configChanges="locale|orientation|screenSize"이 있습니다. 활성로케일 변경 후 작업이 완료되었습니다.

- 활성 B에게

의도 의도 = 새로운 텐트 (이, B.class)를 개시하기위한 로케일

@Override 
public void onConfigurationChanged(Configuration newConfig) 
{ 
    super.onConfigurationChanged(newConfig); 
    Resources res = this.getResources(); 
    res.updateConfiguration(newConfig, null); 
    Intent intent = getIntent(); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
    startActivity(intent); 
} 
  • 를 변경; startActivity (intent);

활동 A를 시작하고 로캘을 변경하면 모두 정상적으로 작동합니다. 하지만 활동 A를 시작하려고하면 활동 B를 시작한 후 활동 A로 이동하여 로케일을 변경하십시오 (Activity A will not be restarted, it will be destroyed). 어떻게 활동 A가 파괴되지 않도록 할 수 있습니까?

답변

0

인 텐트에 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT 플래그를 추가하십시오. 이미 실행중인 스택의 기존 활동 순서를 재정렬합니다.

+0

도움이되지 않습니다. – user2017548

+0

의도 코드를 추가하십시오. 활성 –

+0

- 지역을 변경 \t 공개 무효가 의 onConfigurationChanged \t @Override (구성 newConfig) \t \t \t { super.onConfigurationChanged (newConfig); \t \t 리소스 res = this.getResources(); \t \t res.updateConfiguration (newConfig, null); \t \t 인 텐트 intent = getIntent(); \t \t intent.addFlags (Intent.FLAG_ACTIVITY_NO_ANIMATION); \t \t intent.addFlags (Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); \t \t startActivity (인 텐트); \t} - 활동 B 시작 용 \t 의도 의도 = 새로운 의도 (this, B.class); \t \t startActivity (인 텐트); – user2017548