这个实现的效果是menu->叉掉,但是服务不会被真的杀掉!在正在运行的应用中停止服务,服务不会被停掉!(小米手机除外)
不过杀掉进程,在全部应用中“强行停止”还是会将服务杀死的!
需要做的事情如下:
在application中设置属性persistent为true(这个好像不必须)
persistent是“持续存在的”的意思,也就是让应用持续存在
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:persistent="true"
android:theme="@style/AppTheme">
Service中onStartCommand返回START_STICKY,onDestroy重新拉起服务
package com.yun.testdemo.service;
import android.app.Notification;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
/**
* Created by yun.ren on 2017/6/9.
*/
public class TestService extends Service {
public static final String TAG = "TestService";
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate()。。。");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "onStartCommand()。。。");
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy()。。。");
// 再次拉起service
stopForeground(true);
Intent intent = new Intent();
intent.setClass(this, TestService.class);
this.startService(intent);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}