Android – AlarmManager 和 BroadcastReceiver 有问题

Android – Trouble with AlarmManager and BroadcastReceiver

在我的 android 应用程序中,我试图每 5 秒在日志中打印一条消息。我正在使用带有 AlarmManager 和 BroadcastReceiver 的简单配置,这似乎适用于除我之外的所有人。这是广播接收器的代码:

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class ServiceAlarmReceiver extends BroadcastReceiver {    

private final String TAG = "com.example.ahsandroidapplication";

@Override
public void onReceive(Context context, Intent intent) {   

    Log.i(TAG, "Broadcast received");

}

public void setAlarm(Context context){

    System.out.println("Service started");

    long alertTime = System.currentTimeMillis() + 5000;
    Intent alertIntent = new Intent(context, ServiceAlarmReceiver.class);

    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, alertTime, alertTime, PendingIntent.getBroadcast(context, 1, alertIntent, 
            PendingIntent.FLAG_UPDATE_CURRENT));


}
}

问题是广播接收器没有检测到任何广播。谁能告诉我我做错了什么?感谢任何帮助。

编辑:

四处寻找后,我得出结论,我需要在清单中声明接收者。如果这是问题所在,我该怎么做呢?

改用setRepeating()。专为这些目的而建

好的,所以我在我的清单中定义了接收器,现在它工作正常:

<receiver android:name=".ServiceAlarmReceiver"
        android:enabled="true">   
  <intent-filter>
     <action android:name="com.example.ahsandroidapplication.mybroadcast"></action>
  </intent-filter>

对于接收器,我添加了行:

alertIntent.setAction("com.example.ahsandroidapplication.mybroadcast");

出于实验目的,我将它设置为每秒关闭一次,它在我的日志中爆炸。现在我会看看如何尝试取消它。