다음과 같은 많은 이벤트에서 트리거되는 내 맞춤 대화 상자 빌더가 있습니다 : Asynctasks, 웹 서비스 메시지, UI 입력 오류 또는 활동 컨텍스트가없는 서비스 . 항상 Application 클래스에 currentActivity
이라는 액티비티를 만들었습니다. 그때 모든 활동의 이력서에 앉아서 currentActivity
에 앉는다.내 애플리케이션에서 글로벌 다이얼로그의 우수 사례는 무엇입니까
@Override
protected void onResume() {
super.onResume();
MyApplication.currentActivity = MainActivity.this;
그런 다음 대화 상자를 만든 경우 해당 컨텍스트를 사용했습니다. 하지만 한 가지 문제가있었습니다. 예를 들어 RegisterActivity를 연 다음 currentActivity
을 변경했습니다. 그때 애플 리케이션 고토 배경 또는 일부 다른 활동이 열리는 경우, 내 애플 리케이션은 그 컨텍스트와 대화를 만드는 충돌합니다. 그래서 취급 마녀 활동은 currentActivity
입니다. 내가 봤 거든 일부 사람이 아닌 레이아웃 activty에 CustomDialog를 포함하고 그 활동을 엽니 다 찾습니다. 하지만 좋은 해결책이 아닌 것 같습니다. 업데이트]
예를 들어 나는 나의 모든 보내는 SMS를 처리 SMSManager 클래스가 있습니다. 나는 사용자에게 sms를 보내기 전에 사용자 정의 옵션을 선택한 대화 상자를 열고 싶다.
전체 응용 프로그램에서 글로벌 다이얼로그의 모범 사례는 무엇입니까?
currentActivity를 유지하는 것이 나쁘다는 것을 알고 더 나은 솔루션을 찾고 있습니다. 내 사용자 지정 대화 상자 작성기가 당신과 매우 유사하지만 상황을 가리 킵니다. 내가 말했듯이, 나는 그들 중 일부는 어떤 활동 컨텍스트도 갖지 않는 많은 클래스의 대화창을 열고 싶다. 예를 들어, 응용 프로그램 컨텍스트에서 작동하는 SMS 관리자 클래스 또는 웹 서비스 클래스의 대화 상자를 표시하고 싶습니다. 그래서 그들의 컨텍스트와 대화 상자를 열 수 없습니다. – Kenji
내 대답을 알림 – artkoenig
에 대한 힌트로 업데이트하여 서비스의 UI 대화 상자를 표시하지 않고 일부 이벤트를 브로드 캐스팅하고 활동을 잡으라고 말합니다. 이 소리는 좋으며 MVC 아키텍처와 일치합니다. 내 서비스가 사용자와 의사 소통하고 의견을 나누고 싶다면 어떻게해야할까요? 이 경우에 대한 – Kenji