2012-09-06 5 views
1

다른 응용 프로그램을 호출하고 싶습니다. 다른 응용 프로그램에 대한 호출은 비 활동 클래스입니다. 그러나 getPackageManager()The method getPackageManager() is undefined for the type AppLauncher과 같은 오류를 표시합니다. 패키지 관리자를 가져 왔지만 여전히 동일한 오류가 표시됩니다.비 활동 클래스에서 다른 응용 프로그램을 호출하십시오.

비 활동 클래스에서 다른 앱을 호출 할 수 있습니까? 미리 감사드립니다.

답변

2

activity contextnon-activity class으로 전달하십시오. 그리고 그 맥락에서 다른 응용 프로그램을 호출하십시오.

+0

그래서 Suresh 님, 문제가 해결 되었습니까? – Shrikant

+1

ya 해결 ... shrikant ... –

0

이러한 방법 (예 getPackageManager() 또는 startActivity를())는 콘텍스트의 부재이다. 기본 활동 또는 컨텍스트를 다른 클래스로 전달해야합니다.

BTW 왜 다른 응용 프로그램을 시작하려면 패키지 관리자가 필요한지 알 수 없습니다. startActivity()를 해당 인 텐트와 함께 호출하면 어떨까요? (하지만 그럴만 한 이유가 있습니다.)

1

getPackageManager()을 호출하려면 컨텍스트가 필요합니다. 앱에서 활동의 컨텍스트를 가져옵니다 :

을 주 활동에서 onCreate 블록 :

AppLauncher.setContext(this.getBaseContext)); 

당신의 비 활동 클래스 (AppLauncher)에서 :

Context context; 
public static void setContext(Context context) { 
    this.context = context; 
} 

당신의 비에 getPackageManager()를 호출하려는 Activity 클래스 :

context.getPackageManager(); 

: Windows에서 Eclipse에서 개발할 경우 항상 누락 된 필수 패키지를 자동으로 가져 오기 위해 Ctrl + Shift + O를 사용하십시오.

+0

이제 나는 그것을 가지고 ... 감사 yrajabi .. –

+0

@SURESHKUMAR 좋은! 그런 다음 다른 사용자가 어떤 질문에 가장 적합한 답변을 찾을 수 있도록 대답을 수락하고자 할 수 있습니다. – yrajabi

관련 문제