1

通过 Alarm 的 BroadcastReceiver 的 onReceive 启动服务有什么问题吗?我的服务从来没有调用过 onCreate 或 onStart 方法。

我的闹钟接收器获得唤醒锁,调用 context.startService(new Intent(context, FmiDaemon.class)); (通过 onRecieve 参数给出的上下文),等待 3 秒,然后释放锁。

我的服务有 2 个方法,onCreate 和 onStart。onCreate 获取另一个wakelock,onStart 结束释放wakelock,并调用“stopSelf”。这两种方法都应该将数据发送到日志,但永远不会这样做,因为它们从未被调用过。

问题出在哪里?这是一个不好的“背景”吗?onCreate 和 onStart 是错误的实现方法吗?

4

2 回答 2

1

老问题,但万一其他人有这个问题:

1) 在接收器类 onReceive 的开头添加一个日志条目。如果您的日志没有显示此消息,则您的警报设置不正确,或者您的接收器不在清单文件中。

2)将您的接收器类添加到您的 AndroidManifest.xml

<receiver android:name="MyBroadcastReceiver" />

3) 我的 startService() 如下所示:

Intent newIntent = new Intent(context, MyServiceClass.class);

context.startService(newIntent);
于 2011-01-07T19:27:59.117 回答
0

尝试在您的 AndroidManifest.xml 文件的应用程序标记中添加它。

<service android:name="com.yourpackagetoyourserviceclass.FmiDaemon"/>
于 2009-07-17T08:44:38.547 回答