2010-12-17 4 views
8

APK에서 서비스를 시작하고 싶습니다.활동이나 수신자없이 서비스를 시작할 수 있습니까?

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <service android:name =".TestServcie"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </service> 
    </application> 

어떤 아이디어 :

나는 다음과 같은 사용하려고?
감사합니다.

+0

나는 그것을 받아 들일 수 없습니까? (서비스 철자가 틀렸기 때문에가 아닙니까?) 전혀 일어나지 않습니까? Btw, 서비스 시작 사용자에게 어떤 피드백을 계획하고 있습니까? – EboMike

답변

11

아니요.

서비스를 시작하는 간단한 활동을 작성하고 사용자에게 (서비스가 시작되었음을 알리는) 간단한 피드백을 제공하고 MAIN/LAUNCHER 의도로 활동을 설정하십시오.

+3

누군가는이 끔찍하고 도움이되지 않는 대답을 제거하고 다른 하나를 위에 올려 놓습니다. – Arijoon

+0

@Arijoon : '서비스'가 시작되었다고 어떻게 제안합니까? Android v3.x 이상에서는 사용자가 런처에서 앱을 수동으로 시작한 경우가 아니면 앱 구성 요소를 시작할 수 없습니다. 즉 '액티비티'를 시작한다는 의미입니다. 가장 중요한 것은 사용자의 허가없이 앱 구성 요소를 시작하는 것이 좋지 않은 디자인 일 것입니다. 또한 다른 대답은 정확할 수 있지만 사용자가 '활동'을 시작하지 않으면 실패하게됩니다 (따라서 권한이 있음을 나타냄). 또한 앱을 수동으로 중지하고 다시 수동으로 다시 시작하지 않거나 앱이 SD 카드에 설치되어 있으면 실패합니다. – Squonk

+1

설치 후 활동 ** **을 한 번만 실행하면됩니다. 그런 다음 부팅 할 때 서비스를 시작할 수 있습니다. 대답의 첫 부분은 정확하지만 나머지 부분은 도움이되지 않습니다. Viber와 같은 많은 서비스는 사용자에게 묻지 않고 백그라운드에서 부팅됩니다. – Arijoon

29

당신은 의도 한 후에 BroadcastReceiver를 작성하고 Service를 실행할 수 있습니다. 예를 들어 부팅 장치 나 필요한 다른 의도 이후.

<receiver android:name=".StartupReceiver"> 
    <intent-filter> 
    <action android:name="android.intent.action.BOOT_COMPLETED"/> 
    <category android:name="android.intent.category.HOME"/> 
    </intent-filter> 
</receiver> 
+0

이 답변이 맞는 것 같습니다. 그것은 사용자가 조치를 취하지 않고 서비스를 시작하는 방법을 설명하고 저자가 찾고있는 것이라고 생각합니다. – Undo

+0

Google만큼이나 사용자가 수신기를 등록하려면 실제로 애플리케이션을 실행해야합니다. – Pijusn

+1

이 경우 수신자는 AndroidManifest.xml을 통해 등록됩니다.즉, 사용자가 앱을 설치할 때 등록됩니다. – Qlimax

관련 문제