কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে AlarmManager ব্যবহার করে সার্ভিস শুরু করার পদ্ধতি


ভূমিকা

এই উদাহরণটি দেখাবে কিভাবে AlarmManager এবং PendingIntent ব্যবহার করে নির্দিষ্ট সময়ের পর একটি সার্ভিস স্বয়ংক্রিয়ভাবে শুরু করতে হয়।

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে File → New Project নির্বাচন করুন।

ধাপ ২: লেআউট ফাইল (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="16sp" 
    android:orientation="vertical" 
    android:gravity="center_horizontal"> 
    <Button 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/btnStartService" 
        android:text="Start Service Alarm" 
        android:layout_marginTop="30dp"/> 
    <Button 
        android:id="@+id/btnStopService" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="10dp" 
        android:text="Cancel Service"/> 
</LinearLayout>

ধাপ ৩: মেইন এক্টিভিটি কোড (src/MainActivity.java)

package app.com.sample; 

import android.app.AlarmManager; 
import android.app.PendingIntent; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 
import java.util.Calendar; 

public class MainActivity extends AppCompatActivity { 
    Button btnStart, btnStop; 
    PendingIntent pendingIntent; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 

        btnStart = findViewById(R.id.btnStartService); 
        btnStop = findViewById(R.id.btnStopService); 

        btnStart.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                Intent myIntent = new Intent(MainActivity.this, MyAlarmService.class); 
                pendingIntent = PendingIntent.getService(MainActivity.this, 0, myIntent, 0); 
                AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
                
                Calendar calendar = Calendar.getInstance(); 
                calendar.setTimeInMillis(System.currentTimeMillis()); 
                calendar.add(Calendar.SECOND, 3); // ৩ সেকেন্ড পর
                
                assert alarmManager != null; 
                alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
                Toast.makeText(MainActivity.this, "Starting Service Alarm", Toast.LENGTH_LONG).show(); 
            } 
        }); 

        btnStop.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
                assert alarmManager != null; 
                alarmManager.cancel(pendingIntent); 
                Toast.makeText(MainActivity.this, "Service Cancelled", Toast.LENGTH_LONG).show(); 
            } 
        }); 
    } 
}

ধাপ ৪: সার্ভিস ক্লাস (MyAlarmService.java)

import android.app.Service; 
import android.content.Intent; 
import android.os.IBinder; 
import android.support.annotation.Nullable; 
import android.widget.Toast; 

public class MyAlarmService extends Service { 
    @Override 
    public void onCreate() { 
        Toast.makeText(this, "MyAlarmService.onCreate()", Toast.LENGTH_LONG).show(); 
    } 

    @Nullable 
    @Override 
    public IBinder onBind(Intent intent) { 
        Toast.makeText(this, "MyAlarmService.onBind()", Toast.LENGTH_LONG).show(); 
        return null; 
    } 

    @Override 
    public void onDestroy() { 
        super.onDestroy(); 
        Toast.makeText(this, "MyAlarmService.onDestroy()", Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public void onStart(Intent intent, int startId) { 
        super.onStart(intent, startId); 
        Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public boolean onUnbind(Intent intent) { 
        Toast.makeText(this, "MyAlarmService.onUnbind()", Toast.LENGTH_LONG).show(); 
        return super.onUnbind(intent); 
    } 
}

ধাপ ৫: মেনিফেস্ট ফাইল (androidManifest.xml)

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample"> 
    <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" /> 
    </application> 
</manifest>

অ্যাপ্লিকেশন চালান

অ্যাপটি চালান। "Start Service Alarm" বাটনে ক্লিক করলে ৩ সেকেন্ড পর সার্ভিস শুরু হবে এবং টোস্ট মেসেজ দেখাবে। "Cancel Service" দিয়ে বাতিল করা যায়।


  1. অ্যান্ড্রয়েডে কাস্টম রিংটোন বা অ্যালার্ম সাউন্ড বাজানোর উপায়

  2. অ্যান্ড্রয়েডে অ্যালার্ম ম্যানেজার ইমপ্লিমেন্টেশন

  3. Android-এ বুট টাইমে সার্ভিস শুরু করার পদ্ধতি

  4. JavaMail API ব্যবহার করে Android-এ ইমেইল পাঠানো