2011-03-15 2 views
1

내가 다음을 수행하면 서비스가 시작됩니까?패키지 관리자의 setComponentEnabledSetting이 서비스를 시작합니까?

PackageManager pm = context.getPackageManager(); 
pm.setComponentEnabledSetting(
     new ComponentName(context, MyService.class), 
     PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 
     PackageManager.DONT_KILL_APP); 

그렇지 않은 경우 어떻게됩니까?

http://developer.android.com/reference/android/content/pm/PackageManager.html

내가 javadoc의 읽기, 그냥 '활성화 된 설정을 설정합니다'고 말했다.

답변

5

내가 다음과 같이하면 서비스가 시작됩니까?

No. 전화 걸기 startService()가 서비스를 시작합니다.

그렇지 않은 경우 어떻게됩니까?

구성 요소는 서비스와 마찬가지로 활성화 또는 비활성화 할 수 있습니다. 비활성화 된 구성 요소는 시작할 수 없습니다.

예를 들어, 일부 시스템 브로드 캐스트에만 응답하려고한다고 가정 해 봅니다. 매니페스트에서 <receiver> 요소를 사용 중지 한 다음 위의 코드를 사용하여 사용하도록 설정할 수 있습니다. 그렇게하면 항상 수신기가 필요하지 않을 때 브로드 캐스트에 응답해야합니다. 자동으로 서비스를 시작하는 방법을 찾고 있다면

0

, 당신은이 작업을 수행 할 수 있습니다 : ...

수신기에서 서비스를 시작보다

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
.... 
<receiver android:name=".service.YourReceiver" android:process=":remote" 
       android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED"/> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
</receiver> 

을 그리고 :

이이 명단에 추가

관련 문제