2013-04-08 5 views
0

스택에서 특정 활동을 다시 열 수 있습니까? 그래서 나는 활동 a, b, c를여십시오. 나는 새로운 활동을 시작하는 동안 a와 b를 끝내지 않는다. 만약 내가 그것을 덮어 쓰지 않고 나의 back-button을 누르면, 당연히 B에 갈 것이다.(다시) 스택에서 특정 활동을 엽니 다.

하지만 스택의 위치에서 독립적으로 A 또는 B를 열려면 버튼을 누르거나 뒤로 버튼을 제공하고 싶습니다. 이것은 일을 끝내서 성취 할 수있는 일입니다. (만약 내가 b를 끝내고 C의 뒤로 버튼을 누르면 나는 A로 갈 것입니다). 그러나 내 활동 중 일부는 오히려 끝내지 않을 것입니다.

연구를 수행했지만이를 수행하는 방법을 찾지 못했습니다. 이것이 가능한가?

물론 액티비티가 활성화되어있는 경우 확인이 필요하며 다시 열거 나 열어야합니다.

+1

'FLAG_ACTIVITY_REORDER_TO_FRONT' http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT? – codeMagic

답변

7

당신은 분명히 열려있는 Activity 알고 싶은 논리를 파악해야하지만 이것은 당신이 당신이 찾고 있던 무슨이 아닌 경우 알려줘

@Override 
public void onBackPressed() 
{ 
    super.onBackPressed(); 
    Intent intent = new Intent(CurrentActivity.this, ActivityYouWant.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
    startActivity(intent); 
} 

찾고있는 무엇을 달성해야 .

Flag

+0

감사합니다. 매력처럼 작동했습니다. 어떻게 내가 이것을 놓칠 수 있었는지 전혀 모른다는 생각은 나의 연구 다. 그러나 이것은 내가 찾고 있었던 것이었다. – Jasper

+0

'Intents'는 꽤 많은 것들을 가지고있어, 당신이 그들과 더 많이 일할 때까지는 간과하기 쉽습니다. 다행히 도울 수있어. – codeMagic

1

는 당신이 필요로하는 다음 활동 스택에서 더 많은 활동을 생성 할 수 제안하는 방식 codeMagic. 이것은 메모리 누수 또는 다른 나쁜 행동으로 이어질 수 있습니다.

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 

또는 finish() 당신의 Activities 더 나은 : 당신은에서 살펴 보셔야합니다.

관련 문제