ব্যবহারকারী যখন তাদের অ্যান্ড্রয়েড-চালিত ডিভাইসটি নিষ্ক্রিয় রেখে দেয়, তখন ব্যাটারি নিষ্কাশন এড়াতে এটি দ্রুত সাসপেন্ড অবস্থায় চলে যায়। যাইহোক, এমন কিছু সময় আছে যখন একটি অ্যাপকে CPU-কে সাসপেন্ড অবস্থায় যেতে বাধা দিতে হবে। কিছু ক্ষেত্রে, অ্যাপটি কাজ করার সময় স্ক্রীন চালু রাখতে হতে পারে। অন্যান্য ক্ষেত্রে, অ্যাপটির স্ক্রীন চালু রাখার প্রয়োজন নেই তবে সক্রিয় থাকার জন্য CPU-এর প্রয়োজন।
আপনি যে পদ্ধতিটি গ্রহণ করেন তা আপনার অ্যাপের প্রয়োজনের উপর নির্ভর করে। যাইহোক, একটি সাধারণ নিয়ম হল যে আপনার সিস্টেম রিসোর্সে আপনার অ্যাপের প্রভাব কমাতে সম্ভাব্য সবচেয়ে হালকা পদ্ধতি ব্যবহার করা উচিত। এই নথিটি আপনাকে আপনার পরিস্থিতির জন্য সঠিক Android প্রযুক্তি বেছে নিতে সাহায্য করে।
সঠিক প্রযুক্তি নির্বাচন করুন
আপনার ডিভাইসকে জাগ্রত রাখার জন্য সর্বোত্তম বিকল্পটি আপনার অ্যাপের চাহিদার উপর নির্ভর করে। এই বিভাগটি আপনাকে সঠিক পদ্ধতি বেছে নিতে সাহায্য করে।
- আপনার অ্যাপের কি স্ক্রীন চালু রাখা দরকার?
- যদি হ্যাঁ , স্ক্রীন চালু রাখুন দেখুন। একটি বিশেষ-উদ্দেশ্য API থাকতে পারে যা আপনার যা প্রয়োজন তা করে; উদাহরণস্বরূপ, যদি আপনি একটি ফোন-কল UI প্রয়োগ করছেন, আপনি Android টেলিকম ফ্রেমওয়ার্ক ব্যবহার করতে পারেন, যা প্রয়োজনের সময় স্ক্রীন চালু রাখে। আপনার পরিস্থিতির জন্য কোন বিশেষ উদ্দেশ্য API না থাকলে, আপনি
keepScreenOn
API ব্যবহার করতে পারেন।
- যদি হ্যাঁ , স্ক্রীন চালু রাখুন দেখুন। একটি বিশেষ-উদ্দেশ্য API থাকতে পারে যা আপনার যা প্রয়োজন তা করে; উদাহরণস্বরূপ, যদি আপনি একটি ফোন-কল UI প্রয়োগ করছেন, আপনি Android টেলিকম ফ্রেমওয়ার্ক ব্যবহার করতে পারেন, যা প্রয়োজনের সময় স্ক্রীন চালু রাখে। আপনার পরিস্থিতির জন্য কোন বিশেষ উদ্দেশ্য API না থাকলে, আপনি
- আপনার অ্যাপটি কি একটি ফোরগ্রাউন্ড পরিষেবা চালাচ্ছে এবং পরিষেবাটি চলাকালীন স্ক্রীন বন্ধ থাকলে আপনাকে ডিভাইসটিকে জাগ্রত রাখতে হবে?
- যদি না হয় , আপনার ডিভাইসটিকে জাগ্রত রাখার দরকার নেই৷ ব্যবহারকারী অ্যাপটির সাথে সক্রিয়ভাবে ইন্টারঅ্যাক্ট করলে, ডিভাইসটি জেগে থাকবে। ব্যবহারকারী যদি আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট না করে এবং আপনি একটি ফোরগ্রাউন্ড পরিষেবা চালান না, তাহলে প্রয়োজনে আপনার ডিভাইসটিকে সাসপেন্ড মোডে যেতে দেওয়া উচিত। ব্যবহারকারী অ্যাপ থেকে দূরে থাকাকালীন কিছু কাজ সম্পন্ন হয়েছে কিনা তা নিশ্চিত করতে হলে, সেরা বিকল্পটি খুঁজতে ব্যাকগ্রাউন্ড টাস্ক ডকুমেন্টেশন দেখুন।
- যদি হ্যাঁ , প্রথমে নিশ্চিত করুন যে আপনাকে আসলে একটি ফোরগ্রাউন্ড পরিষেবা ব্যবহার করতে হবে। আপনার পরিস্থিতির উপর নির্ভর করে, কিছু বিশেষ-উদ্দেশ্য API থাকতে পারে যা আপনি একটি ফোরগ্রাউন্ড পরিষেবার পরিবর্তে আপনার প্রয়োজন পূরণ করতে ব্যবহার করতে পারেন। আপনি ফোরগ্রাউন্ড সার্ভিস ডকুমেন্টেশনে এগুলি সম্পর্কে তথ্য পেতে পারেন৷ উদাহরণস্বরূপ, যদি আপনি ব্যবহারকারীর অবস্থান ট্র্যাক করতে চান, তাহলে আপনি একটি
location
অগ্রভাগের পরিষেবার পরিবর্তে জিওফেন্সিং API ব্যবহার করতে সক্ষম হতে পারেন৷
- ফোরগ্রাউন্ড পরিষেবা চলাকালীন ডিভাইসটি স্থগিত হলে এবং ডিভাইসের স্ক্রীন বন্ধ থাকলে এটি ব্যবহারকারীর অভিজ্ঞতার জন্য ক্ষতিকর হবে? (উদাহরণস্বরূপ, আপনি যদি বিজ্ঞপ্তিগুলি আপডেট করার জন্য একটি ফোরগ্রাউন্ড পরিষেবা ব্যবহার করেন তবে ডিভাইসটি সাসপেন্ড করা হলে ব্যবহারকারীর অভিজ্ঞতা খারাপ হবে না৷)
- যদি না , একটি wakelock ব্যবহার করবেন না. ব্যবহারকারী যখন তাদের ডিভাইসের সাথে যুক্ত হয় তখন ক্রিয়াটি স্বয়ংক্রিয়ভাবে পুনরায় শুরু হয়, যা এটিকে স্থগিত থেকে বের করে দেয়।
- যদি হ্যাঁ , আপনার একটি ওয়েক লক ব্যবহার করতে হতে পারে৷ যাইহোক, আপনার এখনও পরীক্ষা করা উচিত যে আপনি ইতিমধ্যেই একটি API ব্যবহার করছেন বা এমন একটি কাজ করছেন যা আপনার পক্ষ থেকে একটি ওয়েক লক ঘোষণা করে, যেমন অ্যাকশনগুলিতে আলোচনা করা হয়েছে যা ডিভাইসটিকে জাগ্রত রাখে ৷
ক্রিয়া যা ডিভাইসটিকে জাগ্রত রাখে
যদি আপনার অ্যাপ নিম্নলিখিতগুলির মধ্যে কোনো একটি করে থাকে, তাহলে আপনাকে নিজে একটি ওয়েক লক সেট করতে হবে না। নিম্নলিখিত অ্যাকশন এবং APIগুলি আপনার জন্য ডিভাইসটিকে জাগ্রত রাখে।
- আপনি যদি অডিও চালান, তাহলে অডিও সিস্টেম আপনার জন্য একটি ওয়েক লক সেট করে এবং পরিচালনা করে; আপনি নিজে এটা করতে হবে না.
- আপনি যদি টাস্ক শিডিউলিং API বা লাইব্রেরি যেমন WorkManager ,
JobScheduler
, বাDownloadManager
ব্যবহার করেন তবে সিস্টেম বা লাইব্রেরি আপনার পক্ষ থেকে একটি ওয়েক লক অর্জন করে৷ - আপনি যদি Media3 ExoPlayer ব্যবহার করেন, তাহলে প্লেয়ারটিকে আপনার জন্য একটি ওয়েক লক সেট করতে আপনি
ExoPlayer.setWakeMode()
ব্যবহার করতে পারেন। - কিছু ডিভাইস সেন্সর হল ওয়েক আপ সেন্সর; আপনি
SensorManager
ব্যবহার করতে পারেন যখন তাদের কাছে রিপোর্ট করার ডেটা থাকে তখন সেই সেন্সরগুলি ডিভাইসটিকে জাগিয়ে তুলতে পারে। একটি সেন্সর একটি ওয়েক-আপ সেন্সর কিনা তা পরীক্ষা করতে,Sensor.isWakeUpSensor
এ কল করুন৷
এছাড়াও দেখুন
,ব্যবহারকারী যখন তাদের অ্যান্ড্রয়েড-চালিত ডিভাইসটি নিষ্ক্রিয় রেখে দেয়, তখন ব্যাটারি নিষ্কাশন এড়াতে এটি দ্রুত সাসপেন্ড অবস্থায় চলে যায়। যাইহোক, এমন কিছু সময় আছে যখন একটি অ্যাপকে CPU-কে সাসপেন্ড অবস্থায় যেতে বাধা দিতে হবে। কিছু ক্ষেত্রে, অ্যাপটি কাজ করার সময় স্ক্রীন চালু রাখতে হতে পারে। অন্যান্য ক্ষেত্রে, অ্যাপটির স্ক্রীন চালু রাখার প্রয়োজন নেই তবে সক্রিয় থাকার জন্য CPU-এর প্রয়োজন।
আপনি যে পদ্ধতিটি গ্রহণ করেন তা আপনার অ্যাপের প্রয়োজনের উপর নির্ভর করে। যাইহোক, একটি সাধারণ নিয়ম হল যে আপনার সিস্টেম রিসোর্সে আপনার অ্যাপের প্রভাব কমাতে সম্ভাব্য সবচেয়ে হালকা পদ্ধতি ব্যবহার করা উচিত। এই নথিটি আপনাকে আপনার পরিস্থিতির জন্য সঠিক Android প্রযুক্তি বেছে নিতে সাহায্য করে।
সঠিক প্রযুক্তি নির্বাচন করুন
আপনার ডিভাইসকে জাগ্রত রাখার জন্য সর্বোত্তম বিকল্পটি আপনার অ্যাপের চাহিদার উপর নির্ভর করে। এই বিভাগটি আপনাকে সঠিক পদ্ধতি বেছে নিতে সাহায্য করে।
- আপনার অ্যাপের কি স্ক্রীন চালু রাখা দরকার?
- যদি হ্যাঁ , স্ক্রীন চালু রাখুন দেখুন। একটি বিশেষ-উদ্দেশ্য API থাকতে পারে যা আপনার যা প্রয়োজন তা করে; উদাহরণস্বরূপ, যদি আপনি একটি ফোন-কল UI প্রয়োগ করছেন, আপনি Android টেলিকম ফ্রেমওয়ার্ক ব্যবহার করতে পারেন, যা প্রয়োজনের সময় স্ক্রীন চালু রাখে। আপনার পরিস্থিতির জন্য কোন বিশেষ উদ্দেশ্য API না থাকলে, আপনি
keepScreenOn
API ব্যবহার করতে পারেন।
- যদি হ্যাঁ , স্ক্রীন চালু রাখুন দেখুন। একটি বিশেষ-উদ্দেশ্য API থাকতে পারে যা আপনার যা প্রয়োজন তা করে; উদাহরণস্বরূপ, যদি আপনি একটি ফোন-কল UI প্রয়োগ করছেন, আপনি Android টেলিকম ফ্রেমওয়ার্ক ব্যবহার করতে পারেন, যা প্রয়োজনের সময় স্ক্রীন চালু রাখে। আপনার পরিস্থিতির জন্য কোন বিশেষ উদ্দেশ্য API না থাকলে, আপনি
- আপনার অ্যাপটি কি একটি ফোরগ্রাউন্ড পরিষেবা চালাচ্ছে এবং পরিষেবাটি চলাকালীন স্ক্রীন বন্ধ থাকলে আপনাকে ডিভাইসটিকে জাগ্রত রাখতে হবে?
- যদি না হয় , আপনার ডিভাইসটিকে জাগ্রত রাখার দরকার নেই৷ ব্যবহারকারী অ্যাপটির সাথে সক্রিয়ভাবে ইন্টারঅ্যাক্ট করলে, ডিভাইসটি জেগে থাকবে। ব্যবহারকারী যদি আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট না করে এবং আপনি একটি ফোরগ্রাউন্ড পরিষেবা চালান না, তাহলে প্রয়োজনে আপনার ডিভাইসটিকে সাসপেন্ড মোডে যেতে দেওয়া উচিত। ব্যবহারকারী অ্যাপ থেকে দূরে থাকাকালীন কিছু কাজ সম্পন্ন হয়েছে কিনা তা নিশ্চিত করতে হলে, সেরা বিকল্পটি খুঁজতে ব্যাকগ্রাউন্ড টাস্ক ডকুমেন্টেশন দেখুন।
- যদি হ্যাঁ , প্রথমে নিশ্চিত করুন যে আপনাকে আসলে একটি ফোরগ্রাউন্ড পরিষেবা ব্যবহার করতে হবে। আপনার পরিস্থিতির উপর নির্ভর করে, কিছু বিশেষ-উদ্দেশ্য API থাকতে পারে যা আপনি একটি ফোরগ্রাউন্ড পরিষেবার পরিবর্তে আপনার প্রয়োজন পূরণ করতে ব্যবহার করতে পারেন। আপনি ফোরগ্রাউন্ড সার্ভিস ডকুমেন্টেশনে এগুলি সম্পর্কে তথ্য পেতে পারেন৷ উদাহরণস্বরূপ, যদি আপনি ব্যবহারকারীর অবস্থান ট্র্যাক করতে চান, তাহলে আপনি একটি
location
অগ্রভাগের পরিষেবার পরিবর্তে জিওফেন্সিং API ব্যবহার করতে সক্ষম হতে পারেন৷
- ফোরগ্রাউন্ড পরিষেবা চলাকালীন ডিভাইসটি স্থগিত হলে এবং ডিভাইসের স্ক্রীন বন্ধ থাকলে এটি ব্যবহারকারীর অভিজ্ঞতার জন্য ক্ষতিকর হবে? (উদাহরণস্বরূপ, আপনি যদি বিজ্ঞপ্তিগুলি আপডেট করার জন্য একটি ফোরগ্রাউন্ড পরিষেবা ব্যবহার করেন তবে ডিভাইসটি সাসপেন্ড করা হলে ব্যবহারকারীর অভিজ্ঞতা খারাপ হবে না৷)
- যদি না , একটি wakelock ব্যবহার করবেন না. ব্যবহারকারী যখন তাদের ডিভাইসের সাথে যুক্ত হয় তখন ক্রিয়াটি স্বয়ংক্রিয়ভাবে পুনরায় শুরু হয়, যা এটিকে স্থগিত থেকে বের করে দেয়।
- যদি হ্যাঁ , আপনার একটি ওয়েক লক ব্যবহার করতে হতে পারে৷ যাইহোক, আপনার এখনও পরীক্ষা করা উচিত যে আপনি ইতিমধ্যেই একটি API ব্যবহার করছেন বা এমন একটি কাজ করছেন যা আপনার পক্ষ থেকে একটি ওয়েক লক ঘোষণা করে, যেমন অ্যাকশনগুলিতে আলোচনা করা হয়েছে যা ডিভাইসটিকে জাগ্রত রাখে ৷
ক্রিয়া যা ডিভাইসটিকে জাগ্রত রাখে
যদি আপনার অ্যাপ নিম্নলিখিতগুলির মধ্যে কোনো একটি করে থাকে, তাহলে আপনাকে নিজে একটি ওয়েক লক সেট করতে হবে না। নিম্নলিখিত অ্যাকশন এবং APIগুলি আপনার জন্য ডিভাইসটিকে জাগ্রত রাখে।
- আপনি যদি অডিও চালান, তাহলে অডিও সিস্টেম আপনার জন্য একটি ওয়েক লক সেট করে এবং পরিচালনা করে; আপনি নিজে এটা করতে হবে না.
- আপনি যদি টাস্ক শিডিউলিং API বা লাইব্রেরি যেমন WorkManager ,
JobScheduler
, বাDownloadManager
ব্যবহার করেন তবে সিস্টেম বা লাইব্রেরি আপনার পক্ষ থেকে একটি ওয়েক লক অর্জন করে৷ - আপনি যদি Media3 ExoPlayer ব্যবহার করেন, তাহলে প্লেয়ারটিকে আপনার জন্য একটি ওয়েক লক সেট করতে আপনি
ExoPlayer.setWakeMode()
ব্যবহার করতে পারেন। - কিছু ডিভাইস সেন্সর হল ওয়েক আপ সেন্সর; আপনি
SensorManager
ব্যবহার করতে পারেন যখন তাদের কাছে রিপোর্ট করার ডেটা থাকে তখন সেই সেন্সরগুলি ডিভাইসটিকে জাগিয়ে তুলতে পারে। একটি সেন্সর একটি ওয়েক-আপ সেন্সর কিনা তা পরীক্ষা করতে,Sensor.isWakeUpSensor
এ কল করুন৷