2013-07-19 2 views
0
import android.app.Activity; 
import android.app.Service; 
import android.app.WallpaperManager; 
import android.content.Intent; 
import android.os.Bundle; 


public class Preview extends Activity { 

    public Preview() { 
     // TODO Auto-generated constructor stub 
    } 

     @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 

     Intent intent = new Intent(); 
     intent.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER); 
     String pkg = Service.class.getPackage().getName(); 
    } 
} 

Service.class.getPackage().getName();에 대해 궁금합니다. 패키지 이름이 표시됩니다. 내 질문은 Service.class의 사용에 있습니다. 어떤 의미인지 또는 어떤 객체가 액세스되고 있는지.활동에서 Android 서비스 사용

답변

1

일반적으로 Java에서 클래스를 초기화하는 데 사용됩니다 (알고있는 패턴은 Class.forName ("some.Clazz") 임). 이 클래스는 클래스가로드되고 정적 필드가 초기화되도록합니다 (예 : 일반적으로 JDBC 드라이버의 경우).

이제는 안드로이드 (dalvik)를 사용 중입니다. 어디에서이 패턴을 얻었습니까?

+0

이것은 라이브 벽지 예제입니다. 정적 유형 초기화에 대한 의미를 알았습니다. .class의 사용은 처음에 이해하지 못했습니다. 예제에서 다른 .java 파일에 정의 된 클래스 Service의 정적 멤버를 초기화하는 데 대해 설명해 주셔서 감사합니다. – Giuseppe

-1
  • 가 배경 (사용자가 없습니다
    경우에도 직접 응용 프로그램과 상호 작용)에서 일을하고 싶은 것에 대해 시스템을 말할 수있는 응용 프로그램을위한 시설. 이것은 Context.startService()에 대한 의 호출에 해당하며 시스템은
    서비스를 서비스 또는 다른 사람이 명시 적으로 수행 할 때까지 실행하도록 예약합니다 (
    ).
  • 일부 기능을 다른 응용 프로그램에 표시하는 기능입니다. Android Dev Docs

    출처 : 이것은 오랜 연결이 함께

소스를 상호 작용하기 위해
가 서비스 할 수 있습니다
Context.bindService()에 대한 호출에 해당 : What is a service

1

"android.app"이 포함 된 문자열을 얻으려면 원형 교차로입니다. 부작용으로 Service 클래스도로드합니다 (프레임 워크 클래스이고 정적 초기화 기가 없으므로 완전히 쓸모가 없습니다). 응용 프로그램의 패키지 이름 (매니페스트에 선언 된 패키지 이름)을 찾으려면 this.getPackageName() (ActivityContext이므로)