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

Android-এ সার্ভিস চলছে কিনা যাচাই করার উপায়

ActivityManager ব্যবহার করে সার্ভিস রানিং স্টেট চেক করা

অ্যান্ড্রয়েডে কোনো নির্দিষ্ট সার্ভিস বর্তমানে চলছে কিনা তা জানার জন্য ActivityManager.getRunningServices() মেথড ব্যবহার করা হয়। এটি ডিবাগিং, ডুপ্লিকেট সার্ভিস প্রিভেনশন বা UI আপডেটের জন্য উপকারী।

কোড উদাহরণ: isMyServiceRunning() মেথড

private boolean isMyServiceRunning(Class<?> serviceClass) {
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    if (manager == null) return false;

    for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (serviceClass.getName().equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}

MainActivity-এ ব্যবহার

public class MainActivity extends AppCompatActivity {

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

        final TextView text = findViewById(R.id.text);
        text.setOnClickListener(v -> {
            if (isMyServiceRunning(MyService.class)) {
                text.setText("Stopped");
                stopService(new Intent(this, MyService.class));
            } else {
                text.setText("Started");
                startService(new Intent(this, MyService.class));
            }
        });
    }
    // isMyServiceRunning মেথড এখানে থাকবে
}

গুরুত্বপূর্ণ নোটসমূহ

  • getRunningServices(Integer.MAX_VALUE) সব রানিং সার্ভিস রিটার্ন করে
  • RunningServiceInfo.service.getClassName() দিয়ে ক্লাস নাম মেলানো হয়
  • এই মেথড UI থ্রেডে কল করা উচিত নয় (হালকা ল্যাগ হতে পারে), ব্যাকগ্রাউন্ড থ্রেডে করুন
  • API 21+ এ getRunningAppProcesses()ও ব্যবহার করা যায় প্রসেস লেভেল চেকের জন্য

আধুনিক বিকল্প (API 26+)

ফোরগ্রাউন্ড সার্ভিসের জন্য ServiceManager বা নোটিফিকেশন ম্যানেজার থেকে চেক করা ভালো। WorkManager-এর ওয়ার্ক স্টেট চেকের জন্য WorkInfo ব্যবহার করুন।

সার্ভিস ক্লাস (MyService.java)

public class MyService extends Service {
    @Override
    public IBinder onBind(Intent intent) { return null; }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show();
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Toast.makeText(this, "Service Destroyed", Toast.LENGTH_SHORT).show();
    }
}

Manifest

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

Android-এ সার্ভিস চলছে কিনা যাচাই করার উপায় Android-এ সার্ভিস চলছে কিনা যাচাই করার উপায় Android-এ সার্ভিস চলছে কিনা যাচাই করার উপায়

  1. Android অ্যাপ্লিকেশন ব্যাকগ্রাউন্ডে চলছে কিনা তা যাচাই করার পদ্ধতি

  2. অ্যান্ড্রয়েডে স্ক্রিন টাইম চেক করার পদ্ধতি

  3. আপনার অ্যান্ড্রয়েড ব্যাটারি স্বাস্থ্য যাচাই করুন: ধাপে ধাপ গাইড

  4. অ্যান্ড্রয়েডে Gear VR Service ডিজেবল করুন: বেটার ব্যাটারি পারফরম্যান্সের জন্য কুইক গাইড