2014-07-08 39 views
0

我的Android应用程序中有一项服务,如果我手动启动,但是我需要该服务才能启动,并且无法在重新启动电话后自动启动该服务,我尝试了几个教程,但没有任何作品。启动后服务无法启动

这里是我的清单代码:

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

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

<application 

    <service android:name="androidservice.SyncService" /> 

    <receiver android:name="androidservice.SyncAuto" > 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 
</application> 

</manifest> 

这里是广播接收器代码:

public class SyncAuto extends BroadcastReceiver { 
     public void onReceive(Context context, Intent intent) { 

      Intent SyncService = new Intent(context, SyncService.class).setAction(SRVC); 
      context.startService(SyncService); 
     } 
    } 
} 
+0

您是否至少在应用中运行过一次活动?如果不是,它不会作为安全功能启动。如果它在SD卡上而不是内部存储器上,则可能会有问题,因为在安装SD卡之前播放此事件。 –

+0

是的,我安装应用程序,运行主要活动,然后启动服务,然后重新启动,一旦重新启动,我检查服务是否已启动,不是。 由于你提到的关于SD卡的问题,如果应用程序安装在内部存储器上,你会瘦身吗? 谢谢Gabe Sechan – user3583884

+0

您的服务和接收者名称是错误的。他们应该从一开始。或者拥有应用程序的全名。您应该将其更改为'.androidservice.SyncAuto'并尝试。 –

回答

0

我认为这个问题必须是你的服务的参考,因为你有

应用
package="com.tvshowsguide" 

您的服务和接收方必须具有以下名称:

<service android:name="com.tvshowsguide.androidservice.SyncService" /> 
<receiver android:name="com.tvshowsguide.androidservice.SyncAuto" >