NSD এর কার্যকারিতা সক্রিয় এবং নিস্ক্রিয় করা গুরুত্বপূর্ন অ্যাপলিকেশনের লাইফসাইকেলের সময়কালে যেভাবে উপযুক্ত হয়। আপনার অ্যাপলিকেশন আনরেজিস্টার করুন যখন এটা বন্ধ হবে, এটা অন্য অ্যাপলিকেশনের চিন্তা করা থেকে বিরত রাখতে সাহায্য করবে যে এখনও এটা সক্রিয় আছে এবং এটার সাথে সংযোগ স্থাপনের চেষ্টা করবে। এছাড়াও সার্ভিস ডিসকভারি একটি ব্যয়বহুল অপারেশন হতে পারে এবং এটা থামানো উচিত হবে যখন প্যারেন্ট একটিভিটিতে পজ দেওয়া হবে এবং সক্রিয় করা হবে যখন একটিভিটি পূণরায় শুরু হবে। আপনার প্রধান একটিভিটির লাইফসাইকের পদ্ধতি ওভাররাইড করুন এবং সার্ভিস ব্রডকাস্ট এবং ডিসকভারি যেভাবে উপযুক্ত হয় স্টপ এবং স্টার্ট করতে কোড প্রবেশ করান।
//In your application's Activity
@Override
protected void onPause() {
if (mNsdHelper != null) {
mNsdHelper.tearDown();
}
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
if (mNsdHelper != null) {
mNsdHelper.registerService(mConnection.getLocalPort());
mNsdHelper.discoverServices();
}
}
@Override
protected void onDestroy() {
mNsdHelper.tearDown();
mConnection.tearDown();
super.onDestroy();
}
// NsdHelper's tearDown method
public void tearDown() {
mNsdManager.unregisterService(mRegistrationListener);
mNsdManager.stopServiceDiscovery(mDiscoveryListener);
}