2017-10-01 1 views
1

버튼으로 앱을 다시 시작하고 싶지만 작동하지 않습니다. 활동 : 나는 다음과 같은 상황이 다음과 같이 A, B, C, D, E를, F 은 내가 활동을 통해 이동합니다 A > B > A > C > A > D > E > FsetOnClickListener로 앱 재시작

내가 A에서 B로 이동 내가 갈 때, 나는 startActivitie를 사용 A에서 C까지는 startActivityForResult을 사용합니다.

이제 앱을 다시 시작하는 활동 A로 돌아가고 싶지만 작동하지 않습니다.

back = (Button) findViewById(R.id.restart); 

    back.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      intent = new Intent(getApplicationContext(), A.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      intent.putExtra("EXIT", true); 
      startActivity(intent); 

     } 
    }); 

을 그리고 내가 활동 A를 사용하고있는 작업은 다음과 같습니다 :

내가 활동 F에 사용하고 무엇

if (getIntent().getBooleanExtra("EXIT", false)) { 
     finish(); 
    } 

문제는, 내가 버튼을 클릭하면 나는 활동 B로 돌아 간다.

내가 뭘 잘못하고있어? 단지로 교체 getApplicationContext()에 대한 필요가 없습니다 감사

OnClickListener를 onClick 방법에서

답변

0

:

intent = new Intent(F.this, A.class); 

문제는이 조건이 true 될 수 있습니다 :

getIntent().getBooleanExtra("EXIT", false) 

및 전화를

finish(); 

변경

intent.putExtra("EXIT", true); 

사람 : 활동을 의미이 줄 falseF 의도 넣어 여분의 활동에 가서 당신은이 버튼을 계속하려면 지금 클릭하십시오 파괴한다

intent.putExtra("EXIT", false); 

그리고 A는 끝나지 않고 나타납니다. 조건 getIntent.getBooleanExtra("EXIT",false)이 이제 거짓이되기 때문에!

+0

오류가 계속 발생합니다 : ( –

+0

나는 지금 그것을 보았습니다.) 활동에 '참'으로 추가하십시오 ** F ** – Xenolion

+0

당신은 탁월합니다.) –

0

확인 FLAG_ACTIVITY_CLEAR_TOP에 대한 문서 :

이 발사 모드도 FLAG_ACTIVITY_NEW_TASK와 함께 좋은 효과를 사용할 수 있습니다

: 태스크의 루트 액티비티를 시작하는 데 사용하는 경우, 그것은의 현재 실행중인 인스턴스를 가져올 것이다 해당 작업을 포 그라운드로 가져온 다음 루트 상태로 지 웁니다.

FLAG_ACTIVITY_NEW_TASK을 추가하십시오. onCreate()에 의존하는 대신 onNewIntent()을 무시해야 할 수도 있습니다.

희망 하시겠습니까?

+0

그것은 그의 논리에 따르면 문제가 아니었다. 비록 그것은 완전히 불필요하고 생략 될 수 있었지만. 나는 동일을 생각했다. 그러나 나는 나중에 나의 대답을 편집했다! @dominicoder – Xenolion

관련 문제