2011-11-24 123 views
1

我有一項活動,MusicLauncher,應該啓動並啓動一項新的服務,HeadsetService。但是,服務永遠不會啓動。這是MusicLauncher類:從活動開始服務

public class MusicLauncher extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     startService(new Intent(this, HeadsetService.class)); 
     Toast.makeText(MusicLauncher.this, "Launching service...", Toast.LENGTH_SHORT).show(); 
    } 

} 

我的清單:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.frazer.musiclauncher" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk android:minSdkVersion="10" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:screenOrientation="sensor" 
     android:label="@string/app_name" 
     android:name=".MusicLauncherPopup" 
     android:theme="@android:style/Theme.Dialog" 
     android:exported="true">   
     <intent-filter > 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:screenOrientation="sensor" 
     android:label="@string/app_name" 
     android:name=".MusicLauncher" 
     android:theme="@android:style/Theme.Dialog" 
     android:exported="true">   
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

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

</application> 

</manifest> 
+3

你怎麼知道它不會啓動?把一些日誌放在服務的onCreate方法中。 –

+0

將一些日誌放在Service類的onCreate和onStart方法上,並檢查它們是否出現。 –

+0

我在服務onCreate方法中有一個toast,它永遠不會出現。 – Frazerm63

回答

1

嘗試修改服務標籤像下面。

<service android:enabled="true" android:name=".HeadsetService" /> 

而不是把一個麪包在你的活動,把吐司/登錄您的服務onCreate()方法,看看是否的顯現。 如果您需要更多信息,請檢查這個link

1

也許對新用戶有用! 當你使用一個以上的包android:namecom.package_name.用(完整的包名)是這樣的:

<service android:enabled="true" android:name="com.package_name.HeadsetService" />