কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে Intent Service থেকে συνεχি UI আপডেট করার পদ্ধতি

IntentService থেকে Барবার UI আপডেট করা

Intent Service ব্যাকগ্রাউন্ডে কাজ করে। এই উদাহরণটি দেখায় কীভাবে IntentService থেকে বারবার ব্রডকাস্ট পাঠিয়ে UI আপডেট করা যায়।

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে File → New Project-এ যান এবং প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট ফাইলে কোড যোগ করুন

res/layout/activity_main.xml ফাইলে নিচের কোড যোগ করুন (আগের মতোই)।

ধাপ ৩: MainActivity.java-তে কোড যোগ করুন

package com.example.andy.myapplication;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity {
    TextView text;
    BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String value = intent.getStringExtra("someName");
            text.setText(value);
        }
    };

    @Override
    protected void onStart() {
        super.onStart();
        IntentFilter filter = new IntentFilter("com.example.andy.myapplication");
        LocalBroadcastManager.getInstance(this).registerReceiver(broadcastReceiver, filter);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        text = findViewById(R.id.text);
        
        // প্রতি ১০ সেকেন্ডে সার্ভিস শুরু করুন
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                new Handler(getMainLooper()).post(() -> 
                    startService(new Intent(MainActivity.this, MyService.class))
                );
            }
        }, 0, 10000);
    }

    @Override
    protected void onStop() {
        super.onStop();
        LocalBroadcastManager.getInstance(this).unregisterReceiver(broadcastReceiver);
    }
}

ধাপ ৪: Service ক্লাস তৈরি করুন

package com.example.andy.myapplication;

import android.app.IntentService;
import android.content.Intent;
import android.os.IBinder;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;

public class MyService extends IntentService {
    public MyService() {
        super(MyService.class.getSimpleName());
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        Intent broadcastIntent = new Intent("com.example.andy.myapplication");
        for (int i = 0; i < 10; i++) {
            broadcastIntent.putExtra("someName", "Tutorialspoint.com " + i);
            LocalBroadcastManager.getInstance(this).sendBroadcast(broadcastIntent);
            try { Thread.sleep(1000); } catch (InterruptedException ignored) {}
        }
        stopSelf();
    }
}

সার্ভিসটি ১০ বার (প্রতি সেকেন্ডে একবার) ব্রডকাস্ট পাঠায় এবং MainActivity UI আপডেট করে।

অ্যাপ্লিকেশন চালান

অ্যাপটি চালান। UI প্রতি সেকেন্ডে আপডেট হবে "Tutorialspoint.com 0" থেকে "Tutorialspoint.com 9" পর্যন্ত।

  1. অ্যান্ড্রয়েডে ব্যাকগ্রাউন্ড সার্ভিস সবসময় চালানোর পদ্ধতি

  2. অ্যান্ড্রয়েডে এক্টিভিটি থেকে রিংটোন সেট করা

  3. Android-এ বুট টাইমে সার্ভিস শুরু করার পদ্ধতি

  4. অ্যান্ড্রয়েড থেকে ম্যালওয়্যার সরানোর উপায়