try this:
First though, let's define the BroadcastReceiver that will be executed by the alarm and will launch our IntentService:
public class MyAlarmReceiver extends BroadcastReceiver {
public static final int REQUEST_CODE = 12345;
public static final String ACTION = "com.codepath.example.servicesdemo.alarm";
 // Triggered by the Alarm periodically (starts the service to run task)
 @Override
 public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, MyTestService.class);
i.putExtra("foo", "bar");
context.startService(i);
 }
 }
Next, let's register both our IntentService and MyAlarmReceiver in the AndroidManifest.xml.
<receiver
android:name=".MyAlarmReceiver"
android:process=":remote" >
</receiver>
<service
android:name=".MyTestService"
android:exported="false" />
java activity
public class MainActivity extends Activity {
@Override
 protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scheduleAlarm();
 }
// Setup a recurring alarm every half hour
 public void scheduleAlarm() {
 // Construct an intent that will execute the AlarmReceiver
 Intent intent = new Intent(getApplicationContext(), MyAlarmReceiver.class);
 // Create a PendingIntent to be triggered when the alarm goes off
 final PendingIntent pIntent = PendingIntent.getBroadcast(this, 
  MyAlarmReceiver.REQUEST_CODE,
    intent, PendingIntent.FLAG_UPDATE_CURRENT);
// Setup periodic alarm every every half hour from this point onwards
long firstMillis = System.currentTimeMillis(); // alarm is set right away
AlarmManager alarm = (AlarmManager) 
 this.getSystemService(Context.ALARM_SERVICE);
// First parameter is the type: ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP, 
 RTC_WAKEUP
// Interval can be INTERVAL_FIFTEEN_MINUTES, INTERVAL_HALF_HOUR, 
 INTERVAL_HOUR, INTERVAL_DAY
alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, firstMillis,
    AlarmManager.INTERVAL_HALF_HOUR, pIntent);
   }
   }
After setting an alarm, if we ever want to cancel the alarm like this:
public void cancelAlarm() {
Intent intent = new Intent(getApplicationContext(), MyAlarmReceiver.class);
final PendingIntent pIntent = PendingIntent.getBroadcast(this, MyAlarmReceiver.REQUEST_CODE,
   intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pIntent);
 }
And check your manifest permissions:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
I am not sure but please check my be it helps you