2016-09-02 2 views
0

나는 4 번의 활동을하고 있습니다. 그 중 두 가지는 로그인/등록을위한 것입니다. 로그인에 성공하면 사용자가 활동 방으로 이동하여 사용자가 채팅 할 방을 선택할 수 있습니다. 그런 다음 두 개/여러 방에서 다시 채팅하고 다른 방을 선택하여 채팅 할 수 있습니다. 이제는 채팅 활동을 끝내고 싶지 않습니다. 사용자가 실내 활동에서 뒤로 (두 번) 누르면 전체 응용 프로그램이 끝납니다.활동 스택을 처리하는 방법은 무엇입니까?

끝내기보다는 데이터를 잃어 버렸기 때문에 채팅 활동 오류가 발생합니다. 이제 어떻게해야합니까? customadapter에서 채팅 활동이 시작되고 front에 플래그 재정렬을 사용하여 백 프레스에서 룸 활동을 시작합니다.

업데이트 : BACK 보도 ON MY 채팅 활동을 마무리하고 싶지 않아

. 나는() 작동 방법을 알고 있습니다. 나는 칸막이를 제거하고 룸 활동의 뒤를 떠나고 싶다.

제안 : 마무리를 호출하거나 더블 백 턴에서 종료하는 방법으로 내게 활동을 마무리하는 방법을 가르쳐주지 마십시오. 플래그에 대한 충분한 지식이 없다면 StackOverflow를 정크로로드 할 필요가 없습니다.

+0

_ "스택을 지우고 방 활동의 후방에서 종료하고 싶습니다."_ [finishAffinity'] (https://developer.android.com/reference/android/app/Activity.html#finishAffinity())). – Michael

+1

사람들이 질문을 잘못 해석 한 경우 달성하려는 것에 대한 설명을 간소화해야합니다. 아무도 이해하지 못하는 것을 삐죽 거리는 대신에. – JoxTraex

+0

finishAffinity는 제가 찾고있는 것입니다. 동의 할 수 있도록 답변으로 추가하십시오. – user6657161

답변

0

이 같은 시도 :

boolean doubleBackToExitPressedOnce = false; 

@Override 
public void onBackPressed() { 
    if (doubleBackToExitPressedOnce) { 
     super.onBackPressed(); 
     return; 
    } 

this.doubleBackToExitPressedOnce = true; 
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show(); 

new Handler().postDelayed(new Runnable() { 

    @Override 
    public void run() { 
     doubleBackToExitPressedOnce=false;      
    } 
}, 2000); 

}

+1

이 질문은 double backtap에서 앱을 종료하는 방법에 관한 것이 아니라 스택에 관한 것입니다. 나는 이미 그렇게 해왔다. – user6657161

+0

Intent.FLAG_ACTIVITY_CLEAR_TOP을 사용하여 이전 활동을 지 웁니다. 또한 사용자가 다시 종료 할 시간을 두 번 확인하는 데 도움이됩니다. 따라서 첫 번째 뒤로는 활동 스택을 지우고 두 번째로 닫는 응용 프로그램을 닫습니다. –

+0

우리가 할 때까지는 쓸모가 없습니다. 신고 된 의도에서 시작 활동과 같은 작업. – user6657161

0

당신은 특정 작업에 대한 활동 스택을 취소하려고합니다. 그래서이 이렇게 마무리() 메서드를 호출하여 대화방 활동을 시작하기 전에 이전 작업을 완료 다시 눌러에 다시 호출 그래서 당신은 당신의 활동을 마무리하지 않을 수 있습니다 startActivity

yourIntent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP)

+0

실내 활동 또는 채팅 활동. – user6657161

0

'발사하기 전에이 작업을 수행.

을 누르십시오. 응용 프로그램을 마치려면 뒤로 (두 번)를 끝내려면 대화방 작업에서 onBackPressed() 메소드의 카운터를 관리해야합니다.

관련 문제