Android 앱을 개발하는 과정에서 정적 클래스에 넣은 유틸리티 유형 메서드 모음이 생겼습니다. 이 모든 메소드는 여러 활동에서 사용되며 대다수의 메소드는 호출 활동의 정보를 필요로하지 않습니다.컨텍스트/활동이있는 정적 유틸리티 클래스 - Android
그러나 이제 활동의 컨텍스트가 필요한 몇 가지 방법과 활동 자체가 필요한 방법이 있습니다. 내가 그들 중 일부 예시 보자.
- getDeviceNaturalOrientation() - 사용을 액티비티의 하여 GetWindow() getWindowManager() getDefaultDisplay() 장치의 자연의 방향을 결정하기 위해 디스플레이 회전, 폭, 높이를 액세스 할 수 있습니다. .
- getDeviceOrientation() - 위의 유사하지만 현재 방향을
- 를 CreateFile()을 얻으려면 - 일부 리소스 (문자열)에 액세스하기 위해 컨텍스트를 사용하고 로 만들고 약간의 토스트를 보여
자,이 경우 Utils 클래스에 대한 내 큰 질문은 다음과 같습니다
-
Uti에서 클래스를 만들고 onCreate와 같이 각 액티비티의 시작 부분에 설정합니까? 이 변수는 Context 또는 Activity 인스턴스가 필요한 함수에서 사용됩니다.
- 위의 내용을 권장하지 않는다고 가정 할 때 Activity 매개 변수를 메서드에 전달하는 것이 좋습니까? 아니면 Activity를 Context로 전달할만한 이유가 있습니까? 위의 장치 방향 지정 함수에 사용하는 메서드는 컨텍스트가 아닌 Activity 개체에만 해당되므로 Activity 나 Context로 전달하여 Activity로 캐스팅합니다 (후자는 끔찍한 생각처럼 들립니다).
또한이 Util 클래스가 컨텍스트/활동이 필요한 이러한 메서드를 사용하는 방법이 아닐 수 있으므로 아이디어를 매우 유용하게 사용할 수 있습니다. 따라서 이러한 메서드의 복사본이있는 것을 방지 할 수있는 대안을 환영합니다. 그것들을 사용하는 각각의 활동 클래스.
고맙습니다. 답변을 수락했습니다. 나는 대부분 그대로 유지하면서 끝났지 만, 전체 컨텍스트 대신 필요에 따라 Resources/FragmentManager/etc ... 만 수신하는 메소드를 변경했습니다. 그것은 매개 변수의 숫자에 추가하지만, 나는 일이 잘못 될 수 있다고 생각합니다. 다시 한번 감사합니다. – RobertoCuba