(我没有在其他地方明确回答以下问题,所以我会在这里问。)
我将BroadcastReceiver子类化以捕获正在捕获的新照片。这个子类工作得很好,但是如果我的应用程序的进程不活动,我的自定义BroadcastReceiver也没有运行,因此在发送相关意图时不会触发。
持久性的推荐方法是什么(真的,如果我的应用程序正在运行,那么)是什么?BroadcastReceiver?我得到的印象是我应该使用服务,但我不清楚我的服务除了:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
我认为,我们坚持服务。否则,对我来说似乎很奇怪,我的AndroidManifest.xml中实际引用的BroadcastReceiver在我的服务中没有引用。
(旁注,我有另一个自定义BroadcastReceiver,其唯一目的是在设备启动时启动上述服务。谢谢Android BroadcastReceiver on startup。)
答案 0 :(得分:2)
您可以在清单中使用意图过滤器来触发广播接收器,如下所示:
<receiver android:name="MyReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
即使应用关闭,这也应该让接收者接收事件。
像这样定义你的接收器:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, WordService.class);
context.startService(service);
}
}
从本教程略微编辑:
http://www.vogella.com/tutorials/AndroidBroadcastReceiver/article.html