在AlarmManager问题中设置重复任务

时间:2011-08-18 16:14:18

标签: android service broadcastreceiver

我尝试使用AlarmManager设置重复任务

任务是向我的运行服务的BroadcastReciever发送广播(如果还没有)。

这是设置重复任务的代码:

alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 10000 , 60 * 1000 , pendingIntent);

现在重复的任务工作正常,但如果我的应用程序仍在运行,我停止了,我就不再接收广播了。

我在这里做错了什么?

编辑:

清单:(只有相关部分)

<service android:name=".TQService"/>
<receiver android:name=".TQServiceManager"
            android:process=":remote">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
    <intent-filter>
        <action android:name="com.xxxxx.tq.TQServiceManager"></action>
    </intent-filter>
</receiver>

代码:

PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent("com.xxxxx.tq.TQServiceManager"), PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 1000 , 30 * 1000 , pendingIntent);

1 个答案:

答案 0 :(得分:1)

您的BroadcastReceiver如何注册?它必须位于AndroidManifest.xml文件中,而不是手动注册。它在你的应用程序运行时起作用而在你的应用程序没有运行时不起作用的事实听起来就像它不在清单中。