স্টিকি ব্রডকাস্ট কী?


90

এই সংজ্ঞাটি সহ আমি সংক্ষিপ্ত সংজ্ঞা সহ অ্যান্ড্রয়েড ডকুমেন্টেশনে এসেছি

এগুলি সম্প্রচারগুলি যার ডেটা শেষ হওয়ার পরে সিস্টেমের হাতে রয়েছে, যাতে ক্লায়েন্টরা পরবর্তী সম্প্রচারের জন্য অপেক্ষা না করে দ্রুত সেই ডেটা পুনরুদ্ধার করতে পারে।

এর মানে কী? কেউ কি এর ব্যবহারকে একটি নির্দিষ্ট উদাহরণ দিয়ে বিশদভাবে বলতে পারেন? আমি বিশ্বাস করি আমাদের এই উদ্দেশ্যটি ব্যবহারের জন্য অনুমতি চাইতে হবে? কেন এমন?

<uses-permission android:name="android.permission.BROADCAST_STICKY"/> - Allows an application to broadcast sticky intents.

4
08 / ফেব্রুয়ারী / 2019, যে কেউ স্টিকি ব্রডকাস্ট অনুসন্ধান করছে এবং এখানে শেষ হয়েছে, অফিসিয়াল ডক থেকেSticky broadcasts should not be used. They provide no security (anyone can access them), no protection (anyone can modify them), and many other problems. The recommended pattern is to use a non-sticky broadcast to report that something has changed, with another mechanism for apps to retrieve the current value whenever desired.
ফ্যাংঝ্ঝ্জ

উত্তর:


110

কোনও ক্রিয়াকলাপ যদি কোনও onPauseসাধারণ সম্প্রচারের সাথে কল করে , সম্প্রচার গ্রহণ করা মিস করা যেতে পারে। একটি স্টিকি সম্প্রচার শুরু করার পরে এটি চেক করা যেতে পারে onResume

আপডেট 6/23/2020

স্টিকি ব্রডকাস্টগুলি হ্রাস করা হয়।

sendStickyBroadcastডকুমেন্টেশন দেখুন

এই পদ্ধতিটি API স্তরের 21-এ অবমুক্ত করা হয়েছিল।

স্টিকি ব্রডকাস্টগুলি ব্যবহার করা উচিত নয়। তারা কোনও সুরক্ষা (যে কেউ এগুলিতে অ্যাক্সেস করতে পারে), কোনও সুরক্ষা (যে কেউ এগুলিকে সংশোধন করতে পারে) এবং অন্যান্য অনেক সমস্যা সরবরাহ করে না। প্রস্তাবিত প্যাটার্নটি হ'ল অ্যাপ্লিকেশনদের যখনই চাইবে বর্তমান মানটি পুনরুদ্ধার করার জন্য অন্য ব্যবস্থার সাহায্যে কিছু পরিবর্তন হয়েছে বলে জানাতে একটি নন-স্টিকি সম্প্রচার ব্যবহার করা।

বাস্তবায়ন

Intent intent = new Intent("some.custom.action");
intent.putExtra("some_boolean", true);
sendStickyBroadcast(intent);

রিসোর্স


হাই, আমি স্ট্যাটিকভাবে সম্প্রচারটির নিবন্ধকরণের সাথে স্টিকি ব্রডকাস্টের সাথে বিভ্রান্ত হচ্ছি। আমি কেবল কোথাও পড়েছি যে ম্যানিফেস্ট ফাইলটিতে একটি সম্প্রচার নিবন্ধন করার জন্য এবং প্রোগ্রামক্রমেটিকভাবে নিবন্ধকরণের মধ্যে পার্থক্য কেবলমাত্র পরবর্তীটি সম্প্রচারটি নিবন্ধন করে না তবে এটি সেখানেই থাকে, পরে পরবর্তীটি সম্প্রচারটি অনপেজ () পদ্ধতিতে নিবন্ধভুক্ত করে।
শায়েস্তা নাজ

দ্রষ্টব্য: বেশিরভাগ ক্ষেত্রে, স্টিকি ব্রডকাস্টগুলি এড়ানো উচিত। আরও তথ্যের জন্য @ নিখিল_কাটরের উত্তরের লিঙ্কটি দেখুন
gMale

@ শায়েস্তা: ম্যানিফেস্ট রিসিভারগুলি তখনও কাজ করে যখন আপনার অ্যাপটি সুপ্ত থাকে যখন কোনও প্রোগ্রামেটিক রিসিভার কেবল তখনই সাড়া দেয় যখন এটির মধ্যে নিবন্ধিত অ্যাপ্লিকেশনটি চলমান থাকে
gMale

@ গামলে তাই, যদি আমরা ক্রিয়াকলাপে থাকি এবং আমরা অনতিবিলম্বে থাকি () এবং আমরা অনিবন্ধিত রিসিভার () বলেছি .. অনারুম ()
কুশাল

4
@ পোলবার্ক আমি উপরের প্রদত্ত লিঙ্কে মার্ক মারফি নামটি পাইনি । এই লিঙ্কটি সঠিক প্রশ্নের উত্তরে নয় বরং আমাকে প্রশ্নে পুনঃনির্দেশ করে। আপনি দয়া করে ইউআরএল আপডেট করতে পারেন ?.
বিশাল ছোটোয়ানি

11

sendStickyBroadcast()sendBroadcast(Intent)স্টিকি হিসাবে পরিচিত হিসাবে কাজ করে , অর্থাত আপনি ব্রডকাস্টটি সম্পূর্ণ হওয়ার পরে আপনি যে প্রেরণগুলি প্রেরণ করছেন তা প্রায় শেষ হয়ে যায়, যাতে অন্যরা দ্রুততার সাথে ফিরে আসা মূল্যের মাধ্যমে সেই ডেটা পুনরুদ্ধার করতে পারে registerReceiver(BroadcastReceiver, IntentFilter)। অন্য সমস্ত উপায়ে, এটি একইরকম আচরণ করে sendBroadcast(Intent)। অপারেটিং সিস্টেমের মাধ্যমে প্রেরিত একটি স্টিকি ব্রডকাস্টের একটি উদাহরণ ACTION_BATTERY_CHANGED। যখন আপনি registerReceiver()সেই ক্রিয়াটির জন্য কল করেন - এমনকি BroadcastReceiverশূন্যতার সাথেও - আপনি সেই ক্রিয়াকলাপের জন্য সর্বশেষ প্রচারিত ইন্টেন্টটি পান। অতএব, আপনি এটি ব্যাটারির ভবিষ্যতের সমস্ত পরিবর্তনের জন্য অগত্যা নিবন্ধন না করে ব্যাটারির অবস্থা সন্ধান করতে এটি ব্যবহার করতে পারেন।


8

একটি স্টিকি ব্রডকাস্টের মান হ'ল সেই মান যা সর্বশেষে সম্প্রচারিত হয়েছিল এবং বর্তমানে এটি স্টিকি ক্যাশে রাখা হয়েছে। এটি এখনই প্রাপ্ত একটি সম্প্রচারের মূল্য নয়। আমি মনে করি আপনি বলতে পারেন এটি কোনও ব্রাউজার কুকির মতো যা আপনি যে কোনও সময় অ্যাক্সেস করতে পারেন। স্টিকি ব্রডকাস্ট্রেশনটি এখন স্টিকি ব্রডকাস্ট পদ্ধতির দস্তাবেজগুলিতে নষ্ট করা হয় ( উদাঃ ):

এই পদ্ধতিটি 21 স্তরের এপিআই স্তরে ছিন্ন করা হয়েছিল St স্টিকি ব্রডকাস্টগুলি ব্যবহার করা উচিত নয়। তারা কোনও সুরক্ষা (যে কেউ এগুলিতে অ্যাক্সেস করতে পারে), কোনও সুরক্ষা (যে কেউ এগুলিকে সংশোধন করতে পারে) এবং অন্যান্য অনেক সমস্যা সরবরাহ করে না। প্রস্তাবিত প্যাটার্নটি হ'ল অ্যাপ্লিকেশনদের যখনই চাইবে বর্তমান মানটি পুনরুদ্ধার করার জন্য অন্য ব্যবস্থার সাহায্যে কিছু পরিবর্তন হয়েছে বলে জানাতে একটি নন-স্টিকি সম্প্রচার ব্যবহার করা।


3

সিস্টেমের মাধ্যমে প্রেরণ ও প্রক্রিয়াজাতকরণের পরে একটি সাধারণ সম্প্রচারের ইন্টেন্ট আর পাওয়া যায় না। আপনি যদি সেন্ড স্টিকি ব্রডকাস্ট (ইনটেন্ট) পদ্ধতিটি ব্যবহার করেন তবে ইন্টেন্টটি স্টিকি, যার অর্থ আপনি প্রেরণ করছেন এমন সম্প্রচারটি সম্প্রচারটি সম্পূর্ণ হওয়ার পরেও স্থির থাকে।

আপনি আমার ব্লগ দেখুন: লিঙ্ক বিবরণ এখানে লিখুন


4
আপনি যে ব্লগে লিঙ্ক করছেন তার লেখকত্বের প্রয়োজনীয় প্রকাশ আমি যুক্ত করেছি। আপনার এখন থেকে এটি নিজেই করা উচিত , অথবা আপনার পোস্টগুলি স্প্যাম হিসাবে মুছে ফেলা সাপেক্ষে।
অ্যান্ড্রু বারবার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.