2013-05-19 7 views
1

서비스가 실행 중일 때 단순히 "부팅"과 다른 알림을 보내는 서비스를 함께 구성하려고합니다. 불행하게도 나는 내 장치, 아무것도 표시를 다시 부팅 할 때BroadcastReceiver에 BOOT_COMPLETED가 알려지지 않음

<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    package="my.project" 
    android:versionCode="1" 
    android:versionName="1.0" 
> 

    <uses-sdk 
     android:minSdkVersion="14" 
     android:targetSdkVersion="17" 
    /> 

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" 
    > 

     <service 
      android:name=".Manager" 
     /> 

     <receiver 
      android:name=".Bootstrap" 
     > 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 

    </application> 

</manifest> 

및 서비스가 시작되지 않습니다처럼 보인다 : 나는 내 매니페스트에 대해 다음 사용하고 있습니다. 여기

BroadcastReceiver 서브 클래스의 구현입니다 :

@Override 
    public void onReceive(Context context, Intent intent) { 

     Log.d("Test", "Bootstrap run!"); 

     int notificationId = 1; 
     NotificationCompat.Builder startNotification = new NotificationCompat.Builder(context) 
      .setSmallIcon(R.drawable.ic_launcher) 
      .setContentTitle("Glance") 
      .setContentText("Starting the Glance service.") 
     ; 
     NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationManager.notify(notificationId, startNotification.build()); 

     // 
     // Run the service. 
     // 
     Intent startServiceIntent = new Intent(context, Manager.class); 
     context.startService(startServiceIntent); 

    } 

작동하지 않을 일을 일으키는 내가 잘못을 수행하거나 여기 누락 될 수 있습니다 무엇에 대한 어떤 제안?

감사합니다.

답변

3

Android 3.1에서 테스트하는 경우 애플리케이션에 활동을 추가 한 다음 활동을 실행하십시오. Android 3.1부터 manifest-registered BroadcastReceivers은 수동으로 구성 요소 중 하나가 실행될 때까지 차단됩니다. 이는 일반적으로 사용자가 자신의 활동 중 하나를 시작했음을 의미합니다. 자세한 내용은 this nearly-two-year-old blog post을 참조하십시오.

관련 문제