android - START_STICKY এবং START_NOT_STICK নির্বাচন করুন
android-service (3)
KISS উত্তর
পার্থক্য:
সিস্টেমটি মারা যাওয়ার পরে আপনার পরিষেবাটি পুনরায় তৈরি করার চেষ্টা করবে
সিস্টেমটি মারা যাওয়ার পরে আপনার পরিষেবাটি পুনরায় তৈরি করার চেষ্টা করবে না
স্ট্যান্ডার্ড উদাহরণ:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
Android এ পরিষেবাগুলি প্রয়োগ করার সময় START_STICKY
এবং START_NOT_STICKY
মধ্যে পার্থক্য কী? কেউ কি কিছু আদর্শ উদাহরণ নির্দেশ করতে পারে ..?
START_STICKY পরিষেবাগুলির জন্য স্পষ্টভাবে চালু এবং বন্ধ করার জন্য ব্যবহার করা হয়, যখন START_NOT_STICKY বা START_REDELIVER_INTENT পরিষেবাগুলির জন্য ব্যবহার করা হয় যা তাদের পাঠানো কোনও আদেশগুলির প্রক্রিয়াকরণের সময় চলতে থাকবে।
START_STICKY
এবং START_NOT_STICKY
জন্য দস্তাবেজটি বেশ সহজ।
এই পরিষেবাটির প্রক্রিয়াটি শুরু হয়ে গেলে এটি মারা যায়
onStartCommand(Intent, int, int))
থেকে ফিরে যাওয়ার পরে, এটি শুরু অবস্থায় ছেড়ে দিন তবে এই বিতরণ অভিপ্রায়টি ধরে রাখুন না। পরে সিস্টেমটি পুনরায় তৈরি করার চেষ্টা করবে। কারণ এটি শুরু অবস্থায় রয়েছে, এটি নতুন পরিষেবা ইনস্ট্যান্স তৈরি করার পরেonStartCommand(Intent, int, int)
কল করার নিশ্চয়তা দেবে; যদি কোনও মুলতুবি প্রারম্ভিক কমান্ড পরিষেবাটিতে বিতরণ করা না থাকে তবে এটি একটি নিল অভিপ্রায় বস্তুর সাথে ডাকা হবে, তাই আপনাকে এটি পরীক্ষা করার জন্য অবশ্যই যত্ন নিতে হবে।এই মোডটি এমন কিছু জিনিসগুলির জন্য ইন্দ্রিয়গ্রাহ্য যা স্পষ্টভাবে শুরু হবে এবং নির্বিচারে সময়ের জন্য চালানোর জন্য বন্ধ করা হবে, যেমন ব্যাকগ্রাউন্ড সঙ্গীত প্লেব্যাক সঞ্চালিত পরিষেবা।
উদাহরণ: স্থানীয় পরিষেবা নমুনা
এই পরিষেবাটির প্রক্রিয়া শুরু হয়ে গেলে এটি শুরু হয় (স্টার্ট
onStartCommand(Intent, int, int))
থেকে ফিরে আসার পরে, এবং এটি সরবরাহ করার জন্য কোনও নতুন সূচনা অভিপ্রায় নেই, তারপর শুরু হওয়া অবস্থায় পরিষেবাটি গ্রহণ করুন এবং পুনরুত্থান করবেন নাContext.startService(Intent)
ভবিষ্যতে স্পষ্ট কল পর্যন্ত। পরিষেবাটিতে একটিonStartCommand(Intent, int, int)
কল পাবেন না কারণ এটি সরবরাহ করার জন্য কোনও মুলতুবি ইন্টেন্ট থাকলে এটি পুনরায় শুরু হবে না।এই মোডটি শুরু হওয়ার ফলে কিছু কাজ করতে চান এমন জিনিসগুলির জন্য ইন্দ্রিয়গ্রাহী করে তোলে, তবে মেমরির চাপের অধীনে এটি বন্ধ করা যেতে পারে এবং আরও কাজ করার পরে পরে আবার স্পষ্টভাবে শুরু করে। সার্ভার থেকে ডেটা নির্বাচনের জন্য এটি এমন একটি উদাহরণের একটি উদাহরণ হতে পারে: অ্যালার্মটি এটির পরিষেবাটি শুরু করার মাধ্যমে প্রতি
N
মিনিটের জন্য পোল করার জন্য একটি অ্যালার্ম নির্ধারণ করতে পারে। যখন এটিরonStartCommand(Intent, int, int)
অ্যালার্ম থেকে বলা হয়, তখন এটি N মিনিটের জন্য একটি নতুন অ্যালার্ম নির্ধারণ করে এবং তার নেটওয়ার্কিংয়ের জন্য একটি থ্রেড স্পন করে। এটি চেক করার সময় এটির প্রক্রিয়াটি মারা গেলে, অ্যালার্ম বন্ধ না হওয়া পর্যন্ত পরিষেবাটি পুনরায় চালু হবে না।
উদাহরণ: ServiceStartArguments.java