2011-11-24 122 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" />