Android service not restarting in lollipop

前端 未结 7 1354
借酒劲吻你
借酒劲吻你 2020-12-11 01:13

In my application, I use location based service in background. So I need to restart my service when it gets destroyed.

But I got this message in logcat

7条回答
  •  被撕碎了的回忆
    2020-12-11 01:51

    import android.app.Notification;
    import android.app.PendingIntent;
    import android.app.Service;
    import android.content.Intent;
    import android.os.Environment;
    import android.os.IBinder;
    import android.support.v7.app.NotificationCompat;
    
    import java.io.File;
    import java.io.IOException;
    
    import activity.MainActivity;
    import activity.R;
    import fragment.MainFragment;
    
    public class MyService extends Service {
        public static final int NOTIFICATION_CODE = 1;
    
    
        @Override
        public void onCreate() {
            super.onCreate();
    
    
        }
    
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            startForeground(NOTIFICATION_CODE, getNotification());
            return START_STICKY;
        }
    
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
    
        @Override
        public void onDestroy() {
            stopForeground(true);
            super.onDestroy();
        }
    
        @Override
        public boolean stopService(Intent name) {
            return super.stopService(name);
        }
    
    
        /**
         * Create and return a simple notification.
         */
        private Notification getNotification() {    
            Notification notification;
            NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
            builder.setColor(getResources()
                            .getColor(R.color.material_deep_teal_500))
                    .setAutoCancel(true);
    
            notification = builder.build();
            notification.flags = Notification.FLAG_FOREGROUND_SERVICE | Notification.FLAG_AUTO_CANCEL;
    
            return notification;
        }
    
    
    }
    

    You can modify this code to accomodate your needs but this is the basic structure to start foreground service. Which restarts if gets killed.

提交回复
热议问题