Pages

Monday, July 23, 2012

How to use Alarm Service in android?

Today in this tutorial I will show you how to use AlarmService in android.
For this you have to first create a project named AlarmDemo and copy this code into it.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
 
public class AlarmDemo extends Activity {
    Toast mToast;
      @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
 
            Button button = (Button)findViewById(R.id.one_shot);
            button.setOnClickListener(mOneShotListener);
 
        }
 
        private OnClickListener mOneShotListener = new OnClickListener() {
            public void onClick(View v) {
 
                Intent intent = new Intent(AlarmDemo.this, MyAlarmReceiver.class);
                PendingIntent sender = PendingIntent.getBroadcast(AlarmDemo.this,
                        0, intent, 0);
 
                // We want the alarm to go off 10 seconds from now.
                Calendar calendar = Calendar.getInstance();
                calendar.setTimeInMillis(System.currentTimeMillis());
                calendar.add(Calendar.SECOND, 10);
 
                // Schedule the alarm!
                AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
                am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
 
                // Tell the user about what we did.
                if (mToast != null) {
                    mToast.cancel();
                }
                mToast = Toast.makeText(AlarmDemo.this,"Alarm Started",
                        Toast.LENGTH_LONG);
                mToast.show();
            }
        };
}
We use the AlarmManager class for creating an Alarm service.
Here we are setting the time to 10 seconds so after 10 seconds a Toast pops up.
For receiving the Broadcast we have to create a class the extends the BroadcastReceiver class on which the onReceive function gets called when the service ends.
So create a class named “MyAlarmReceiver.java” and copy this code into it.


package pack.coderzheaven;
 
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
 
public class MyAlarmReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Toast.makeText(context, "Alarm Received after 10 seconds.", Toast.LENGTH_SHORT).show();
    }
}
This is the layout file main.xml
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:padding="4dip"
    android:gravity="center_horizontal"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
 
    <TextView
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_weight="0"
        android:paddingBottom="4dip"
        android:text="Alarm Demo"/>
 
    <Button android:id="@+id/one_shot"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:text="Start Alarm">
        <requestFocus />
    </Button>
</LinearLayout>
This class will be called after 10 seconds.
Now the important thing for receiving the Brodcast events you have to register with the AndroidManifest.


This is the AndroidManifest file for the above code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="pack.coderzheaven"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".AlarmDemo"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    <receiver android:name=".MyAlarmReceiver" android:process=":remote" />
    </application>
</manifest>
Alarm Demo
Alarm Demo

Alarm Demo
Alarm Demo

No comments:

Post a Comment

Popular Posts