কম্পিউটার

কিভাবে একটি পরিষেবার জন্য START_STICKY বাস্তবায়ন করবেন?


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

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

এই উদাহরণটি দেখায় যে কীভাবে একটি পরিষেবার জন্য START_STICKY প্রয়োগ করতে হয়৷

ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে সমস্ত প্রয়োজনীয় বিবরণ পূরণ করুন৷

ধাপ 2 − res/layout/activity_main.xml-এ নিম্নলিখিত কোড যোগ করুন।

 
 উপরের কোডে, আমরা টেক্সট ভিউ নিয়েছি, যখন ব্যবহারকারী টেক্সট ভিউতে ক্লিক করবে, তখন এটি পরিষেবা শুরু করবে এবং পরিষেবা বন্ধ করবে।

ধাপ 3 − src/MainActivity.java

-এ নিম্নলিখিত কোড যোগ করুন
প্যাকেজ com.example.andy.myapplication;import android.app.ActivityManager; import android.content.Context; import android.content.Intent; import android.support.v7.app.AppCompatActivity; android.os.Bundle আমদানি করুন;import android.util.Log;import android.view.View;import android.widget.TextView;পাবলিক ক্লাস MainActivity AppCompatActivity প্রসারিত করে { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ফাইনাল টেক্সটভিউ টেক্সট =findViewById(R.id.text); text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (isMyServiceRunning(service.class)) { text.setText("Stoped"); stopService(নতুন ইন্টেন্ট(স, পরিষেবা। .class)); } অন্য { text.setText("Started"); startService(new Intent(MainActivity.this, service.class)); } } }); } প্রাইভেট বুলিয়ান isMyServiceRunning(Class serviceClass) { ActivityManager manager =(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); জন্য (ActivityManager.RunningServiceInfo পরিষেবা :manager.getRunningServices(Integer.MAX_VALUE)) { যদি (serviceClass.getName().equals(service.service.getClassName())) { সত্য ফেরত; } } রিটার্ন মিথ্যা; }}

পরিষেবা শুরু এবং বন্ধ করার জন্য উপরের কোডে। আমরা অভিপ্রায় ব্যবহার করেছি এবং প্রসঙ্গ এবং পরিষেবা ক্লাস পাস করেছি। এখন প্যাকেজ ফোল্ডারে service.class নামে একটি সার্ভিস ক্লাস তৈরি করুন এবং নিম্নলিখিত কোড যোগ করুন –

প্যাকেজ com.example.andy.myapplication;Import android.annotation.TargetApi;Import android.app.Notification;import android.app.NotificationChannel;import android.app.NotificationManager;import android.app.PendingIntent;Android আমদানি করুন। app.Service;Import android.content.Context;Import android.content.Intent;Import android.graphics.Color;Import android.media.MediaPlayer;Import android.os.Build;Import android.os.IBinder; android.support আমদানি করুন .annotation.RequiresApi;import android.support.v4.app.NotificationCompat;import android.util.Log;import android.widget.Toast;পাবলিক ক্লাস সার্ভিস প্রসারিত করে পরিষেবা { @Override public IBinder onBind(Intent intent) { রিটার্ন নাল; } @ওভাররাইড সর্বজনীন শূন্যতা onCreate() { super.onCreate(); } @TargetApi(Build.VERSION_CODES.O) @RequiresApi(api =Build.VERSION_CODES.JELLY_BEAN) @Override public int onStartCommand(Intent intent, int ফ্ল্যাগ, int startId) { Toast.makeText, "ব্যবহারকারীর দ্বারা পরিষেবা শুরু হয়েছে। ", টোস্ট.LENGTH_LONG).শো(); Log.d("Tutorialspoint.com","পরিষেবাগুলি কাজ করছে ব্যাকগ্রাউন্ড"); ফেরত START_STICKY; } @RequiresApi(api =Build.VERSION_CODES.N) @Override public void onDestroy() { super.onDestroy(); Toast.makeText(এটি, "ব্যবহারকারীর দ্বারা বিজ্ঞপ্তি পরিষেবা ধ্বংস করা হয়েছে।", টোস্ট.LENGTH_LONG).show(); }}

উপরের কোডে আমরা START_STICKY বলেছি, এখন নীচে দেখানো হিসাবে পরিষেবার তথ্য পরীক্ষা করুন –

কিভাবে একটি পরিষেবার জন্য START_STICKY বাস্তবায়ন করবেন?

পদক্ষেপ 4৷ - manifest.xml

-এ নিম্নলিখিত কোড যোগ করুন
 <অ্যাপ্লিকেশন android:allowBackup ="true" android:icon ="@mipmap/ic_launcher" android:label ="@string/app_name" android:roundIcon ="@mipmap/ic_launcher_round" android:supportsRtl ="সত্য " android:theme ="@style/AppTheme"> <অ্যাক্টিভিটি android:name =".MainActivity">   <শ্রেণি android:name ="android.intent.category.LAUNCHER" />    

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

কিভাবে একটি পরিষেবার জন্য START_STICKY বাস্তবায়ন করবেন?

উপরের ফলাফলে একটি প্রাথমিক স্ক্রীন, টেক্সট ভিউতে ক্লিক করুন, এটি নীচে দেখানো হিসাবে বিজ্ঞপ্তি পরিষেবা শুরু করবে –

কিভাবে একটি পরিষেবার জন্য START_STICKY বাস্তবায়ন করবেন?

উপরের ফলাফলে, পরিষেবা শুরু হয়েছে এখন টেক্সট ভিউতে ক্লিক করুন, এটি নীচে দেখানো হিসাবে বিজ্ঞপ্তি পরিষেবা বন্ধ করবে -

কিভাবে একটি পরিষেবার জন্য START_STICKY বাস্তবায়ন করবেন?


  1. কীভাবে অ্যান্ড্রয়েডে সিম পরিষেবার তথ্য পাবেন?

  2. অ্যান্ড্রয়েডে কাস্টম অবজেক্ট সহ ভলি অ্যারেলিস্টের জন্য কীভাবে বিপরীত করবেন?

  3. কিভাবে অ্যান্ড্রয়েডে একটি লাইন আঁকা?

  4. অ্যান্ড্রয়েডে অ্যালার্ম ম্যানেজার ব্যবহার করে কীভাবে পরিষেবা শুরু করবেন?