Android alarmManager setRepeating不触发

tha*_*guy 8 android alarmmanager

我试图在指定的时间设置一个警报,但它没有被我的reciver捕获.

建立:

Intent intent = new Intent(this, ActionReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

Calendar current = Calendar.getInstance();
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, (current.getTimeInMillis() + 60000),3600000, pendingIntent);
Run Code Online (Sandbox Code Playgroud)

这是我的收发器:

public class ActionReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    Bundle bundle = intent.getExtras(); //breakpoint here that doesn't get triggered 
  }
 }
Run Code Online (Sandbox Code Playgroud)

我把这些值放在我的清单中:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<receiver android:name="com.project.ActionReceiver" android:enabled="true" />
Run Code Online (Sandbox Code Playgroud)

不确定有什么问题...谢谢!

Pet*_*hao 2

清单中接收者的名称应该是类名称,例如:

<receiver android:name="com.project.ActionReceiver">
Run Code Online (Sandbox Code Playgroud)

顺便说一句,设定一个行动是更好的做法。

Intent intent = new Intent(this, ActionReceiver.class);
intent.setAction("com.project.action.ALERM");
Run Code Online (Sandbox Code Playgroud)

并且在清单中

<receiver android:name="com.project.ActionReceiver">
    <intent-filter>
        <action android:name="com.project.action.ALERM"/>
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)