警报管理器未调用广播接收器

Alarm Manager is not invoking Broadcast receiver

我有两个警报管理器问题。一个是我想每 10 秒重复一次警报,另一个是我的广播接收器在 10 秒后调用。

当我使用 Activity 而不是 Broadcast Receiver 时,它正在工作,但 Broadcast Receiver 不工作。而且时间不合适,有时它在 1 分钟内起作用,有时它在 50 秒内起作用。但我需要每 10 秒。

我的代码是:

 buttonStart.setOnClickListener(new Button.OnClickListener(){

 @Override

        public void onClick(View arg0) {

            // TODO Auto-generated method stub

            long tenMin = 1000/5  ;//here is 30 seconds
            Intent intent = new Intent(MainActivity.this, MyBroadcastReceiver.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this,
                    0, intent, 0);
            AlarmManager am =
                    (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
            am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), tenMin, pendingIntent);

        }});

BoradcastReceiver.java

public class MyBroadcastReceiver extends BroadcastReceiver {

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

        Toast.makeText(context, "Alarm....", Toast.LENGTH_LONG).show();
    }  
}  


Manifest file:

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service android:name=".MyAlarmService" />

        <receiver
            android:name=".MyBroadcastReceiver"
            android:process=":remote"></receiver>

        <activity android:name=".SecondActivity"></activity>
    </application>

</manifest>

使用:

Activity:

PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0, intent, 0);

10 秒重复间隔,

   repeatingInterval = 10 *1000; //interval in milli seconds for 10sec

   AlarmManager alarmManager =(AlarmManager)getSystemService(Activity.ALARM_SERVICE);
   alarmManager .setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), repeatingInterval , pendingIntent);

应该可以。