【问题标题】:Android – Trouble with AlarmManager and BroadcastReceiverAndroid – AlarmManager 和 BroadcastReceiver 的问题
【发布时间】:2015-10-05 04:11:53
【问题描述】:

在我的 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));


}
}

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

编辑:

看了一圈后,我得出结论,我需要在清单中声明接收者。如果这是问题所在,我该怎么做?

【问题讨论】:

    标签: java android service broadcastreceiver alarmmanager


    【解决方案1】:

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

    【讨论】:

    • 我按照你的建议做了,但问题仍然是没有收到任何广播。
    • 发布您如何注册此接收器并编辑您的问题
    【解决方案2】:

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

    <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");
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多