অ্যান্ড্রয়েড - কোনও পরিষেবার জন্য স্টার্টফোরগ্রাউন্ড প্রয়োগ করছে?


124

সুতরাং আমার পরিষেবাটি অগ্রভাগে চালিত করতে এই পদ্ধতিটি কোথায় / কীভাবে প্রয়োগ করা যায় তা আমি নিশ্চিত নই। বর্তমানে আমি অন্য কার্যকলাপে নিম্নলিখিত দ্বারা আমার পরিষেবাটি শুরু করি:

Intent i = new Intent(context, myService.class); 
context.startService(i);

এবং তারপরে মাই সার্ভিসগুলির অনক্রিটে () আমি স্টার্টফোরগ্রাউন্ডে চেষ্টা করি () ...?

Notification notification = new Notification();
startForeground(1, notification);

সুতরাং হ্যাঁ আমি কীভাবে এটি প্রয়োগ করব সে সম্পর্কে আমি কিছুটা হারিয়েছি এবং অনিশ্চিত।


ভাল এটি কাজ করে না, কমপক্ষে আমি যতটা বলতে পারি আমার পরিষেবা এখনও একটি পটভূমি পরিষেবা হিসাবে কাজ করে এবং মারা যায়।
জেডিএস

: থ্রেড লিঙ্ক করা হয়েছে stackoverflow.com/questions/10962418/...
Snicolas

উত্তর:


131

আমি সম্পূর্ণরূপে পূরণ করে শুরু করব Notificationএখানে ব্যবহারের একটি নমুনা প্রকল্প দেখানো হচ্ছে startForeground()


8
কোনও বিজ্ঞপ্তি ছাড়াই কি স্টার্টফোরগ্রাউন্ড () ব্যবহার করা সম্ভব? বা আমরা কি পরে একই বিজ্ঞপ্তি আপডেট করতে পারি?
জেআরসি

2
আপনি কোন বিশেষ কারণ ব্যবহার করেছেন 1337?
কোডি

33
@ ডক্টরওরিও: এটি অ্যাপ্লিকেশনটির মধ্যে অনন্য হওয়া দরকার যদিও ডিভাইসে অগত্যা অনন্য নয়। আমি 1337 বেছে নিয়েছি কারণ, ভাল, এটি 1337 । :-)
CommonsWare

@ জেআরসি প্রশ্নটি একটি ভাল। কোনও বিজ্ঞপ্তি ছাড়াই কি স্টার্টফোরগ্রাউন্ড () ব্যবহার করা সম্ভব?
Snicolas

2
@ স্নিকোলাস: অ্যান্ড্রয়েডে কোনও ত্রুটি চিহ্নিত করার জন্য আপনাকে ধন্যবাদ। আমি এই ঠিক করার কাজ করব।
কমন্সওয়্যার

78

আপনার মূল ক্রিয়াকলাপ থেকে, নিম্নলিখিত কোড সহ পরিষেবাটি শুরু করুন:

Intent i = new Intent(context, MyService.class); 
context.startService(i);

তারপরে আপনার পরিষেবায় onCreate()আপনি আপনার বিজ্ঞপ্তিটি তৈরি করবেন এবং এটিকে পূর্বরূপ হিসাবে সেট করবেন:

Intent notificationIntent = new Intent(this, MainActivity.class);

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
                notificationIntent, 0);

Notification notification = new NotificationCompat.Builder(this)
                .setSmallIcon(R.mipmap.app_icon)
                .setContentTitle("My Awesome App")
                .setContentText("Doing some work...")
                .setContentIntent(pendingIntent).build();

startForeground(1337, notification);

@ মাইএকএটিভিটি থেকে এই বিজ্ঞপ্তিটি কীভাবে আপডেট করবেন?
Roon13

1
@ রুন 13 আইডিটি ব্যবহার করে, এই ক্ষেত্রে 1337 ... আপনি একটি নতুন বিজ্ঞপ্তি তৈরি করতে এবং আইডি সহ স্টার্টফোরগ্রাউন্ডে কল করতে সক্ষম হবেন
মাইকবার্তিয়ান

@ Roon13 এই প্রশ্নের খুঁজে বার করো stackoverflow.com/questions/5528288/...
mikebertiean

@mikebertiean আমি কীভাবে মেইনএক্টিভিটি থেকে স্টার্টফোরগ্রাউন্ড কল করতে পারি? প্রক্রিয়া শেষ হয়ে গেলে আমি কীভাবে মেইনএকটিভিটি থেকে বিজ্ঞপ্তিটি সাফ করতে পারি?
Roon13

@ মাইকবার্তিয়ান আমি পেয়েছি যে সার্ভিস ক্লাসে আমাকে আবার স্টার্টফোরগ্রাউন্ডে কল করতে হবে তবে কীভাবে? আমাকে কি আবার স্টার্ট সার্ভিস () কল করতে হবে?
Roon13

30

পরিষেবাটিকে অগ্রভাগে সেট করার জন্য এটি আমার কোড:

private void runAsForeground(){
    Intent notificationIntent = new Intent(this, RecorderMainActivity.class);
    PendingIntent pendingIntent=PendingIntent.getActivity(this, 0,
            notificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK);

    Notification notification=new NotificationCompat.Builder(this)
                                .setSmallIcon(R.drawable.ic_launcher)
                                .setContentText(getString(R.string.isRecording))
                                .setContentIntent(pendingIntent).build();

    startForeground(NOTIFICATION_ID, notification);

}

পেন্ডিং ইন্টেন্ট ব্যবহার করে আমার একটি বিজ্ঞপ্তি তৈরি করা দরকার, যাতে আমি বিজ্ঞপ্তিটি থেকে আমার মূল ক্রিয়াকলাপ শুরু করতে পারি।

বিজ্ঞপ্তিটি সরাতে, কেবল স্টপফোরগ্রাউন্ডে কল করুন (সত্য);

এটি স্টার্টকমন্ডে () বলা হয়। দয়া করে এখানে আমার কোডটি দেখুন: https://github.com/bearstand/greyparrot/blob/master/src/com/xiong/richard/greyparrot/Mp3Recorder.java


আপনি যদি স্টপফোরগ্রাউন্ডে কল করা বিজ্ঞপ্তিটি সরিয়ে ফেলেন (সত্য) আপনি স্টার্টফ্রাউড পরিষেবাটি বাতিল করছেন
sdelvalle57

6
আপনি কোথা থেকে এই পদ্ধতি কল?
শ্রুজান বড়াই

7
Intent.FLAG_ACTIVITY_NEW_TASKপ্রসঙ্গে বৈধ নয় PendingIntent
মিশ্রিত করুন

30

ওরিওর জন্য সমাধান 8.1

অ্যান্ড্রয়েডের সর্বাধিক সাম্প্রতিক সংস্করণগুলির সাথে অবৈধ চ্যানেল আইডি থাকায় আমি রিমোটসেসিএক্সসেপ্টের মতো কিছু সমস্যার মুখোমুখি হয়েছি । এইভাবে আমি এটি সমাধান করেছি:

ক্রিয়াকলাপ :

override fun onCreate(savedInstanceState: Bundle?) {
    val intent = Intent(this, BackgroundService::class.java)

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        startForegroundService(intent)
    } else {
        startService(intent)
    }
}

BackgroundService:

override fun onCreate() {
    super.onCreate()
    startForeground()
}

private fun startForeground() {

    val service = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    val channelId =
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                createNotificationChannel()
            } else {
                // If earlier version channel ID is not used
                // https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html#NotificationCompat.Builder(android.content.Context)
                ""
            }

    val notificationBuilder = NotificationCompat.Builder(this, channelId )
    val notification = notificationBuilder.setOngoing(true)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setPriority(PRIORITY_MIN)
            .setCategory(Notification.CATEGORY_SERVICE)
            .build()
    startForeground(101, notification)
}


@RequiresApi(Build.VERSION_CODES.O)
private fun createNotificationChannel(): String{
    val channelId = "my_service"
    val channelName = "My Background Service"
    val chan = NotificationChannel(channelId,
            channelName, NotificationManager.IMPORTANCE_HIGH)
    chan.lightColor = Color.BLUE
    chan.importance = NotificationManager.IMPORTANCE_NONE
    chan.lockscreenVisibility = Notification.VISIBILITY_PRIVATE
    val service = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    service.createNotificationChannel(chan)
    return channelId
}

জাভা উপকরণ

public class YourService extends Service {

    // Constants
    private static final int ID_SERVICE = 101;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        super.onStartCommand(intent, flags, startId);
        return START_STICKY;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        // do stuff like register for BroadcastReceiver, etc.

        // Create the Foreground Service
        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        String channelId = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? createNotificationChannel(notificationManager) : "";
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId);
        Notification notification = notificationBuilder.setOngoing(true)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setPriority(PRIORITY_MIN)
                .setCategory(NotificationCompat.CATEGORY_SERVICE)
                .build();

        startForeground(ID_SERVICE, notification);
    }

    @RequiresApi(Build.VERSION_CODES.O)
    private String createNotificationChannel(NotificationManager notificationManager){
        String channelId = "my_service_channelid";
        String channelName = "My Foreground Service";
        NotificationChannel channel = new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_HIGH);
        // omitted the LED color
        channel.setImportance(NotificationManager.IMPORTANCE_NONE);
        channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
        notificationManager.createNotificationChannel(channel);
        return channelId;
    }
}

8
আপনি ContextCompat.startForegroundService(Context,Intent)আপনার ক্রিয়াকলাপে ব্যবহার করতে পারেন যা সঠিক কাজ করবে। ( বিকাশকারী.অ্যান্ড্রয়েড.
সাইমন ফেথারস্টোন

3
আপনার নূন্যতম এপিআই <21 21.setCategory(NotificationCompat.CATEGORY_SERVICE)Notification.CATEGORY_SERVICE
কেউ

6
দয়া করে নোট করুন যে অ্যাপ্লিকেশনগুলিকে টার্গেট করে Build.VERSION_CODES.P(এপিআই স্তর ২৮) বা তার পরে অবশ্যই Manifest.permission.FOREGROUND_SERVICEব্যবহারের জন্য অনুমতিটির জন্য অনুরোধ করতে হবে startForeground()- দেখুন ডেভেলপার.অ্যান্ড্রয়েড.
com/references/android/app/…

21

RAWA উত্তর ছাড়াও , কোডের এই শান্তি:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    startForegroundService(intent)
} else {
    startService(intent)
}

আপনি এতে পরিবর্তন করতে পারেন:

ContextCompat.startForegroundService(context, yourIntent);

আপনি যদি এই পদ্ধতির ভিতরে নজর রাখেন তবে দেখতে পাবেন যে এই পদ্ধতিটি আপনার জন্য সমস্ত পরীক্ষার কাজ করে।


9

আপনি যদি ইনটেন্ট সার্ভিসেসকে একটি অগ্রভাগ পরিষেবা করতে চান

তাহলে আপনার onHandleIntent()এইরকম ওভাররাইড করা উচিত

Override
protected void onHandleIntent(@Nullable Intent intent) {


    startForeground(FOREGROUND_ID,getNotification());     //<-- Makes Foreground

   // Do something

    stopForeground(true);                                // <-- Makes it again a normal Service                         

}

কীভাবে বিজ্ঞপ্তি করবেন?

সহজ। এখানে getNotification()পদ্ধতি

public Notification getNotification()
{

    Intent intent = new Intent(this, SecondActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,0);


    NotificationCompat.Builder foregroundNotification = new NotificationCompat.Builder(this);
    foregroundNotification.setOngoing(true);

    foregroundNotification.setContentTitle("MY Foreground Notification")
            .setContentText("This is the first foreground notification Peace")
            .setSmallIcon(android.R.drawable.ic_btn_speak_now)
            .setContentIntent(pendingIntent);


    return foregroundNotification.build();
}

গভীর বোঝাপড়া

কোনও পরিষেবা একটি অগ্রভাগ পরিষেবা হয়ে গেলে কী হয় happens

এটা ঘটেছে

এখানে চিত্র বর্ণনা লিখুন

অগ্রভাগ পরিষেবা কী?

একটি অগ্রভাগ পরিষেবা,

  • নিশ্চিত করে যে ব্যবহারকারী নোটিফিকেশন সরবরাহ করে পটভূমিতে কিছু চলছে যে সম্পর্কে সক্রিয়ভাবে সচেতন aware

  • (সর্বাধিক গুরুত্বপূর্ণ) যখন মেমরি কম চলে তখন সিস্টেম দ্বারা হত্যা করা হয় না

অগ্রভাগ পরিষেবা একটি ব্যবহারের কেস

একটি মিউজিক অ্যাপে গান ডাউনলোডের কার্যকারিতা কার্যকর করা হচ্ছে


5

অনক্রিয়েট () এ "ওএস> = বিল্ড.VERSION_CODES.O" এর জন্য প্রদত্ত কোড পরিষেবা শ্রেণি যুক্ত করুন

@Override
public void onCreate(){
    super.onCreate();

     .................................
     .................................

    //For creating the Foreground Service
    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    String channelId = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? getNotificationChannel(notificationManager) : "";
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId);
    Notification notification = notificationBuilder.setOngoing(true)
            .setSmallIcon(R.mipmap.ic_launcher)
           // .setPriority(PRIORITY_MIN)
            .setCategory(NotificationCompat.CATEGORY_SERVICE)
            .build();

    startForeground(110, notification);
}



@RequiresApi(Build.VERSION_CODES.O)
private String getNotificationChannel(NotificationManager notificationManager){
    String channelId = "channelid";
    String channelName = getResources().getString(R.string.app_name);
    NotificationChannel channel = new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_HIGH);
    channel.setImportance(NotificationManager.IMPORTANCE_NONE);
    channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
    notificationManager.createNotificationChannel(channel);
    return channelId;
}

ম্যানিফেস্ট ফাইলটিতে এই অনুমতিটি যুক্ত করুন:

 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

1

উপর অভিপ্রায় হ্যান্ডেল startCommand ব্যবহার করে সেবার।

 stopForeground(true)

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

পাসিং মানটি সত্য বা মিথ্যা নির্দেশিত যদি আপনি বিজ্ঞপ্তিটি সরাতে চান বা না চান।

val ACTION_STOP_SERVICE = "stop_service"
val NOTIFICATION_ID_SERVICE = 1
...  
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
    super.onStartCommand(intent, flags, startId)
    if (ACTION_STOP_SERVICE == intent.action) {
        stopForeground(true)
        stopSelf()
    } else {
        //Start your task

        //Send forground notification that a service will run in background.
        sendServiceNotification(this)
    }
    return Service.START_NOT_STICKY
}

যখন ধ্বংস হয় তখন আপনার কাজটি পরিচালনা করুন স্টপসেলফ () বলে

override fun onDestroy() {
    super.onDestroy()
    //Stop whatever you started
}

অগ্রভাগে পরিষেবাটি চলমান রাখতে একটি বিজ্ঞপ্তি তৈরি করুন।

//This is from Util class so as not to cloud your service
fun sendServiceNotification(myService: Service) {
    val notificationTitle = "Service running"
    val notificationContent = "<My app> is using <service name> "
    val actionButtonText = "Stop"
    //Check android version and create channel for Android O and above
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        //You can do this on your own
        //createNotificationChannel(CHANNEL_ID_SERVICE)
    }
    //Build notification
    val notificationBuilder = NotificationCompat.Builder(applicationContext, CHANNEL_ID_SERVICE)
    notificationBuilder.setAutoCancel(true)
            .setDefaults(NotificationCompat.DEFAULT_ALL)
            .setWhen(System.currentTimeMillis())
            .setSmallIcon(R.drawable.ic_location)
            .setContentTitle(notificationTitle)
            .setContentText(notificationContent)
            .setVibrate(null)
    //Add stop button on notification
    val pStopSelf = createStopButtonIntent(myService)
    notificationBuilder.addAction(R.drawable.ic_location, actionButtonText, pStopSelf)
    //Build notification
    val notificationManagerCompact = NotificationManagerCompat.from(applicationContext)
    notificationManagerCompact.notify(NOTIFICATION_ID_SERVICE, notificationBuilder.build())
    val notification = notificationBuilder.build()
    //Start notification in foreground to let user know which service is running.
    myService.startForeground(NOTIFICATION_ID_SERVICE, notification)
    //Send notification
    notificationManagerCompact.notify(NOTIFICATION_ID_SERVICE, notification)
}

ব্যবহারকারীর প্রয়োজন হলে পরিষেবাটি বন্ধ করতে বিজ্ঞপ্তিতে একটি স্টপ বাটন দিন।

/**
 * Function to create stop button intent to stop the service.
 */
private fun createStopButtonIntent(myService: Service): PendingIntent? {
    val stopSelf = Intent(applicationContext, MyService::class.java)
    stopSelf.action = ACTION_STOP_SERVICE
    return PendingIntent.getService(myService, 0,
            stopSelf, PendingIntent.FLAG_CANCEL_CURRENT)
}

1

দ্রষ্টব্য: যদি আপনার অ্যাপ্লিকেশনটি এপিআই স্তরের 26 বা ততোধিক লক্ষ্যকে লক্ষ্য করে, অ্যাপ্লিকেশন নিজেই অগ্রভাগে না থাকলে সিস্টেম ব্যাকগ্রাউন্ড পরিষেবাগুলি ব্যবহার বা তৈরি করার ক্ষেত্রে বিধিনিষেধ আরোপ করে।

যদি কোনও অ্যাপ্লিকেশনটির অগ্রভাগ পরিষেবা তৈরি করা দরকার হয় তবে অ্যাপটি কল করা উচিত startForegroundService()এই পদ্ধতিটি একটি পটভূমি পরিষেবা তৈরি করে, তবে পদ্ধতিটি সিস্টেমে সংকেত দেয় যে পরিষেবাটি নিজেকে অগ্রভাগে প্রচার করবে।

একবার পরিষেবা তৈরি হয়ে গেলে, পরিষেবাটি অবশ্যই এটি কল করবে startForeground() method within five seconds.


1
আমি আশা করি আপনি বর্তমান প্রশ্ন সম্পর্কে কথা বলছেন। অন্যথায়, স্ট্যাকওভারফ্লো সম্প্রদায়টিতে এ জাতীয় কোনও নিয়ম নেই
ফরিদ

প্রোডাকশন-রেডি এনভায়রনমেন্ট কোড-এ @ রোজারগাসমো সর্বদা আপনার প্রকল্প সংরক্ষণ করবে না। এছাড়াও - আমার উত্তরের নীচে এবং উপরে কোড সহ অনেক দুর্দান্ত উদাহরণ রয়েছে .. আমার প্রকল্পের মুক্তির সময় সমস্যাগুলি ছিল ঠিক কারণ আমি startForegroundServiceপদ্ধতি সম্পর্কে জানতাম না
আন্দ্রেই কোভালচুক

0

আমার ক্ষেত্রে এটি সম্পূর্ণ আলাদা ছিল যেহেতু ওরিওতে পরিষেবাটি চালু করার জন্য আমার কোনও তত্পরতা ছিল না।

নীচে আমি এই অগ্রভাগ পরিষেবা ইস্যুটি সমাধান করার জন্য যে পদক্ষেপগুলি ব্যবহার করেছি -

public class SocketService extends Service {
    private String TAG = this.getClass().getSimpleName();

    @Override
    public void onCreate() {
        Log.d(TAG, "Inside onCreate() API");
        if (Build.VERSION.SDK_INT >= 26) {
            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
            mBuilder.setSmallIcon(R.drawable.ic_launcher);
            mBuilder.setContentTitle("Notification Alert, Click Me!");
            mBuilder.setContentText("Hi, This is Android Notification Detail!");
            NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

            // notificationID allows you to update the notification later on.
            mNotificationManager.notify(100, mBuilder.build());
            startForeground(100, mBuilder.mNotification);
        }
        Toast.makeText(getApplicationContext(), "inside onCreate()", Toast.LENGTH_LONG).show();
    }


    @Override
    public int onStartCommand(Intent resultIntent, int resultCode, int startId) {
        Log.d(TAG, "inside onStartCommand() API");

        return startId;
    }


    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d(TAG, "inside onDestroy() API");

    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
}

এবং এর পরে এই পরিষেবাটি শুরু করার জন্য আমি সেন্টিমিডির নীচে ট্রিগার করেছি -


adb -s "+ সিরিয়াল_আইডি +" শেলটি স্টার্টফ্রাউডগ্রাউন্ডসার্ভিস -কম কম.টাস্ট.সকেট.সাম্পেল / .সকেট সার্ভিস


সুতরাং এটি আমাকে ওরিও ডিভাইসে কোনও ক্রিয়াকলাপ ছাড়াই পরিষেবা শুরু করতে সহায়তা করে :)


0

@ মাইকবার্তিয়ান সমাধান প্রায় কৌশলটিই সম্পন্ন করেছিল, তবে অতিরিক্ত মোচড় নিয়ে আমার এই সমস্যাটি হয়েছিল - আমি জিনজারব্রেড সিস্টেমটি ব্যবহার করি এবং আমি বিজ্ঞপ্তিটি চালানোর জন্য কিছু অতিরিক্ত প্যাকেজ যুক্ত করতে চাই না। পরিশেষে আমি খুঁজে পেয়েছি: https://android.googlesource.com/platform/frameworks/support.git+/f9fd97499795cd47473f0344e00db9c9837eea36/v4/gingerbread/android/support/v4/app/NotificationsCompatGingerbread.ava

তারপরে আমি অতিরিক্ত সমস্যায় পড়েছি - বিজ্ঞপ্তিটি যখন আমার অ্যাপ্লিকেশনটি চালিত হয় কেবল তখনই তাকে হত্যা করে (কীভাবে এই সমস্যার সমাধান করবেন: অ্যান্ড্রয়েড: কীভাবে কোনও বিজ্ঞপ্তি কল অনক্রিট () ) এ ক্লিক করা এড়ানো যায় , সুতরাং সামগ্রিকভাবে আমার পরিষেবার কোডটি এটি দেখতে (সি #) / Xamarin):

Intent notificationIntent = new Intent(this, typeof(MainActivity));
// make the changes to manifest as well
notificationIntent.SetFlags(ActivityFlags.ClearTop | ActivityFlags.SingleTop);
PendingIntent pendingIntent = PendingIntent.GetActivity(this, 0, notificationIntent, 0);
Notification notification = new Notification(Resource.Drawable.Icon, "Starting service");
notification.SetLatestEventInfo(this, "MyApp", "Monitoring...", pendingIntent);
StartForeground(1337, notification);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.