2013-02-06 2 views
2

Android 개발을 배우기 시작한 오늘 Helper 클래스를 정의하는 방법에 대한 정보를 찾을 수 없으며, 전역으로로드 할 기능 모음을 찾을 수 있습니다. 내가 만든 모든 활동에서 그것들을 사용하십시오.Android 글로벌/공통 기능

필자가 계획하고있는 것은 모든 활동에 거의 사용되는 2 가지 기능을 만드는 것이며 모든 활동에서 동일한 기능을 정의해야하는 혼란입니다.

위의 접근 방법 중 적절한 방법은 무엇입니까?

+0

당신은 [응용 프로그램 클래스에 대한 연구 필요 http://developer.android.com/reference/android/app/Application.html](http://developer.android.com/reference/android/app/Application.html)이 클래스를 확장하고에서 일부 정적 함수를 만듭니다. 그것은 응용 프로그램 – QAMAR

답변

2

당신이이 목적을 위해 글로벌 애플리케이션 클래스에 기능을 넣어되어서는 안된다는 빠른 메모를 밖으로 던져 싶어요. 일반적으로 무슨 일이 기능을 공유 한 경우 추상적 그와이에 코드를 넣어 것입니다 :

  • 정적 메소드
  • 또 다른 패키지
  • 앱을 연결하는 반대 기능을 구현하는 라이브러리
  • 콘텐츠 제공자

당신은 명시 적으로 하지Application 클래스에서이 기능을 구현해야합니다. 은 응용 프로그램을 확장하는 데 사용되는이지만 코드 냄새가 발생하고 초보자에게 공통적 인 반 패턴입니다. 앱에서 여러 기능을 공유하려면 라이브러리가 완벽한 솔루션입니다 (다른 패키지로 분리 된 코드 일지라도). 이렇게하면 재사용이 촉진되고 코드를보다 명확하게 분류하여 테스트 할 수 있습니다.

Java에서는 일반적으로 *.util의 클래스 또는 pacakge를 사용합니다.

(난 당신이 루비는 자바보다 지향 더 많은 메타 프로그래밍이, 당신은 일반적으로 다른 트릭을 사용하기 때문에, 규범 인 레일의 세계 같은 것을에서 오는 추측하고있어.)

+1

사실 저는 PHP에서 왔습니다. 그러나 전문적인 견해에 대해 감사 드리며 일을 처리하기가 싫어서 셀 수없이 받아 들일 것입니다 ...내가 제대로 할 수있는 시간을 좀 더 보내고 싶습니다. – Alex

+0

'Application 클래스에서이 기능을 명시 적으로 구현하지 않아야합니다.'라는 질문을 통해 @ ChristianStewart의 답변도 참조 할 수 있습니다. – Alex

+0

@ w0rldart 그래,! –

2

이것은 Java의 정적 메소드입니다. 클래스 도우미를

Java Static Methods

,
public static void DoSomething(){ 
} 

은 모든 클래스에서 접근 될 것이다.

예 :

Helper.MyFunction(); 
+0

과 거의 모든 기능에서 당신이 Activity/Context를 전달할 필요가있을 것입니다. – mihail

+0

@mihail 당신이 그것을 사용하지 않으면 ... –

+1

올바른, 당신은 그것을 사용하는 경우에만 필요합니다. –