Implement startForeground method in Android

后端 未结 4 2161
星月不相逢
星月不相逢 2020-12-14 03:11

I want to implement the startForeground() method in the Service class for prevent service self kill.

Can anybody sent me code for implement

4条回答
  •  醉梦人生
    2020-12-14 03:52

    Jovan, here is a method for making compatible code for 2.0+ and 1.6- (the code shows you how to detect which one is compatible) http://android-developers.blogspot.com/2010/02/service-api-changes-starting-with.html

    For 2.0+, I put together some example code (using startForeground). Observe that some code is now deprecated, however, Notification.Builder uses API level 11 (3.x) which means I won't use that until most phones use a compatible Android version. Since the vast majority of phones is now running some version of 2.x, I think it's safe enough to skip the compatibility check.

    final static int myID = 1234;
    
    //The intent to launch when the user clicks the expanded notification
    Intent intent = new Intent(this, SomeActivityToLaunch.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent pendIntent = PendingIntent.getActivity(this, 0, intent, 0);
    
    //This constructor is deprecated. Use Notification.Builder instead
    Notification notice = new Notification(R.drawable.icon_image, "Ticker text", System.currentTimeMillis());
    
    //This method is deprecated. Use Notification.Builder instead.
    notice.setLatestEventInfo(this, "Title text", "Content text", pendIntent);
    
    notice.flags |= Notification.FLAG_NO_CLEAR;
    startForeground(myID, notice);
    

    put this code within onStartCommand() of your service and you're good to go. (But you could put this section of code anywhere in your service.)

    P.S. to stop the service from being in foreground simply use stopForeground(true); anywhere in your service

提交回复
热议问题