Android : 활성 활동에서 전경 활동을 닫는 방법은 무엇입니까?
-
18-09-2019 - |
문제
서버와 비동기로 통신하는 응용 프로그램을 만들었습니다. 응용 프로그램이 서버에 "로드"알림이 생성 된 새 대화 상자 (활동)를 요청할 때. 주요 활동은 서버 응답을 처리하는 방법을 구현하며 기본 활동이 서버로부터 답을받을 때 전경 활동을 닫고 싶습니다.
알림 대화 상자는 다음과 같은 방식으로 생성됩니다.
private void showServerRequestDialog(String actionLabel){
Intent intent = new Intent(this, DlgServerRequest.class);
intent.putExtra(SERVER_REQUEST_ACTION, actionLabel);
startActivity(intent);
}
따라서 사용자가 인증을 시도하면 다음 방법이 다음과 같습니다.
private void authenticateUser(String IMEI, String username, String password){
mEncoderConnection.authenticateRequest(IMEI, username, password);
showServerRequestDialog("Authenticating...");
}
그리고 인증 응답을 처리합니다.
public void onAuthenticateResponse(AuthenticateResponse pkg) {
//code for response handling
//TODO: close ServerRequestDialog
}
}
OnauthenticateUser ()가 실행될 때 누군가가 알림 대화 상자 (DLGServerRequest)를 닫는 방법을 제안 할 수 있다면 감사하겠습니다.
해결책
진짜를 사용하지 않는 이유는 무엇입니까? ProgressDialog
또는 다른 Dialog
? 그러면, 당신이해야 할 일은 있습니다 dismissDialog()
, 그리고 당신은 끝났습니까?
용납 할 수없는 경우, 내가 볼 수있는 두 가지 주요 행동 과정이 있습니다.
- 인증 로직을
DlgServerRequest
클래스, 그래서 가능합니다finish()
그 자체. - 당신의 인스턴스를 넣으십시오
DlgServerRequest
주요 활동이 호출 할 수 있도록 정적 데이터 멤버로 클래스finish()
그 위에
옵션 #2를 선택하면 정말 중요합니다. null
메모리 누출을 피하기 위해 해당 정적 데이터 멤버.
제휴하지 않습니다 StackOverflow