친구,이전 활동 스택을 지우고 뒤로 버튼에서 애플리케이션을 종료하는 방법은 무엇입니까?
나는 A, B, C
A는 홈 화면입니다 세 가지 활동
있습니다. 내가 활동 스택/이전 활동 기록을 지우려면 BACK 버튼 사용하여 홈 화면에 와서 응용 프로그램을 종료하는 경우는활동은 다음과 A-> B-> C
로 시작된다.
어떤 가이드 나 어떻게 이것을 달성하기 위해?
친구,이전 활동 스택을 지우고 뒤로 버튼에서 애플리케이션을 종료하는 방법은 무엇입니까?
나는 A, B, C
A는 홈 화면입니다 세 가지 활동
있습니다. 내가 활동 스택/이전 활동 기록을 지우려면 BACK 버튼 사용하여 홈 화면에 와서 응용 프로그램을 종료하는 경우는활동은 다음과 A-> B-> C
로 시작된다.
어떤 가이드 나 어떻게 이것을 달성하기 위해?
매우 간단합니다 : 활동 A의 활동 A.에게
를 시작하는 데 사용 의도에 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
를 사용하는이 시도 :
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
finish();
}
return super.onKeyDown(keyCode, event);
}
이 말은 다시 버튼을 누르 경우 활동이 finish()
있는지 확인해야합니다 에드. 이 액티비티가 스택 하단에있는 경우 finish
액티비티를 종료해야합니다.
나는 compostus가 true라고 생각하지만, 그렇지 않으면 A에서 startActivityForResult()를 사용하여 B를 시작하고 onActivityResult()에서받은 "message"를 처리 할 수 있다고 생각합니다. 뒤로 버튼을 누르면 활동 B가 "CLOSE_ACTIVITY"메시지를 보냅니다. 활동 C의 활동
2의 선언에,
1 세트 clearTaskOnLaunch = "true"로 AndroidManifest를에 :
당신은 다음과 같은 작업을 수행 할 수
이@Override
public void onBackPressed(){
moveTaskToBack(true);
}
그렇다면 사용자가 다시 누르면 - 온다 홈 화면으로 돌아 가기 사용자가 응용 프로그램을 다시 시작하면 작업 스택이 지워지고 루트 활동이 시작됩니다. (A)
위의 코드를 사용하면 맨 위 활동 등을 정리하기 위해 의도를 설정하지 않아도됩니다. 그냥 "moveTaskToBack"이 모든 것을 처리합니까? –
예. 그것은 당신이 배경으로 작업을 이동하고 홈 화면을 표시 할 수 있습니다. (하지만이 작업을 위해 현재 활성 상태 인 C 활동). 사용자가 응용 프로그램을 다시 시작하면 clearTaskOnLaunch가 작동하고 루트 작업을 제외한 작업의 모든 활동이 제거되므로 A가 활성화되고 C가 삭제됩니다. – Arseniy
이것은 나에게 효과가 없었습니다. 응용 프로그램을 마지막으로 다시 시작했을 때 페이지가 끊어지는 페이지가 계속 열립니다. –
다시 버튼을 사용하여 **로 돌아갈 때 기록을 지우고 싶습니다. 그러나 A에 도달하는 유일한 두 가지 방법은 뒤로 버튼을 사용하거나 다른 활동에서 명시 적으로 활동을 시작하는 것입니다. 그러나 B 또는 C에서 A 작업을 시작할 때 언급 된 플래그를 사용하면 기록이 지워집니다. 그리고 버튼을 누르기 만하면 하나씩 지워지므로 내 대답이 여전히 문제를 해결해야합니다. – compostus
나는 A (Home) 화면으로 돌아 가기 위해 백 버튼을 사용하고 있기 때문에 아무런 의미가 없다. – UMAR
@UMAR : 뒤로 가기 버튼 만 사용하여 집을 가져 오는 경우, 이전 활동은 이동하는 동안 자동으로 기록에서 삭제되어야합니다. 그렇지 않니? – compostus