2014-10-02 3 views

답변

3

예 가능합니다. AndroidManifest에서 어떤 활동도 정의하지 마십시오. 괜찮습니다.

그러나 서비스를 호출하기 위해해야 ​​할 일은 브로드 캐스트 수신기로 일부 전화 작업을 듣는 것입니다.

이런 식으로 뭔가 : 사용자의 장치가 (분명히) 재부팅 될 때

<receiver android:name="com.example.MyBroadcastReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED"/> 
      <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/> 
     </intent-filter> 
    </receiver> 

행동 BOOT_COMPLETED 및 MY_PACKAGE_REPLACED가 트리거뿐만 아니라 응용 프로그램의 업그레이드 (또는 초기 설치)는 플레이를 통해 (수행 될 때마다 예를 들어 상점). 그런 다음 서비스를 다시 시작할 수 있습니다 (또는 x 분/시간/일/...로 서비스가 시작되도록 경보를 예약 할 수 있습니다).

사용자 입력이 없으면 다른 유용한 작업은 ACTION_USER_PRESENT입니다. 이 사용자는 사용자가 휴대 전화를 잠금 해제 할 때마다 트리거됩니다.

주의 : 매니페스트에 권한을 추가하는 데 필요한 BOOT_COMPLETED 동작에 대한 :

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 

이 그런 다음 'MyBroadcastReciever'수업 시간에 당신이 작업을 확인하는 특별한 아무것도 안된다. 당신은 너무 당신의 방송 수신기는 다음과 같이 보일 것입니다, 당신은 단지 매니페스트에 지정된 조치에 의해 거기에 얻을 것이다 알고 이제까지도 매니페스트에 정의되어야한다 트리거됩니다

public class MyBroadcastReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     // Do your work here... 
    } 
} 

모든 서비스를! 그것에 대해 잊지 마세요!