...
<manifest ... >
<uses-permission android:name="android.permission.WAKE_LOCK"/>
...
<application ... >
<receiver android:name=".AlarmReceiver" />
</application>
</manifest>
The permission will enable the Android system to wake up at the specified time. The receiver field declares BroadcastReceiver element to be used. Here, I will be using the name AlarmReceiver.
Next, create AlarmReceiver.java file with something similar to below:
...
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
wl.acquire();
// Put here YOUR code.
Toast.makeText(context, "Alarm !!!!!!!!!!", Toast.LENGTH_LONG).show(); // For example
wl.release();
}
public void setAlarm(Context context) {
AlarmManager alarmManager;
PendingIntent pi;
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent (context, AlarmReceiver.class);
pi = PendingIntent.getBroadcast(context, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+5000, pi);
}
public void setAlarm(Context context) {
AlarmManager alarmManager;
PendingIntent pi;
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent (context, AlarmReceiver.class);
pi = PendingIntent.getBroadcast(context, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+5000, pi);
}
}
Here, setAlarm method is specifying the scheduled time to be 5 secs after the current time. At that time, onReceive method will be invoked, so you will need to place your tasks there.
Finally, edit your activity java file to add the following code to schedule:
Context context = this.getApplicationContext();
AlarmReceiver alarm = new AlarmReceiver();
alarm.setAlarm(context);
That's it!
No comments:
Post a Comment