Android 无法将WakefulIntentService的子类实例化为接收方

Android 无法将WakefulIntentService的子类实例化为接收方,android,commonsware-cwac,Android,Commonsware Cwac,我正在使用WakefulIntentService和AlarmManager实现一个数据记录器服务。但是,我在实例化接收器时遇到问题。以下是我尝试运行应用程序时得到的结果 错误/AndroidRuntime(3181):java.lang.RuntimeException:无法实例化接收方my.package.WakeFullLoggerIntentService:java.lang.InstanceException:my.package.WakeFullLoggerIntentService

我正在使用WakefulIntentService和AlarmManager实现一个数据记录器服务。但是,我在实例化接收器时遇到问题。以下是我尝试运行应用程序时得到的结果

错误/AndroidRuntime(3181):java.lang.RuntimeException:无法实例化接收方my.package.WakeFullLoggerIntentService:java.lang.InstanceException:my.package.WakeFullLoggerIntentService

以下是服务类的相关部分:

public class WakefulLoggerIntentService extends WakefulIntentService
{
   public WakefulLoggerIntentService()
   {
      super("WakefulLoggerIntentService");
   }

   @Override
   protected void doWakefulWork( Intent intent )
   {
      // Do the actual data logging.
   }
}
我已将receiver元素添加到清单中:

<receiver android:name=".WakefulLoggerIntentService">
</receiver>

我缺少什么?

WakeFullLoggerIntentService
是一项
服务。它不是
广播接收器

要使用WakefulIntentService
,您需要一个由警报触发的
广播接收器
,然后调用
sendWakefulWork()
启动
WakefulLoggerIntentService


此外,您需要将您的
WakeFullLoggerIntentService
在清单中注册为
,而不是缺少链接的

。非常感谢。
  Intent i = new Intent(getApplicationContext(), WakefulLoggerIntentService.class);
  PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, i, 0);
  AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
  am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 30000, pi);