关闭应用程序后,服务停止运行

问题描述 投票:0回答:1

我在Android中写了一个简单的服务。只要应用程序正在运行,它就会运行,当应用程序关闭时就会停止。我的代码如下。

public class WitoService extends Service {
private MediaPlayer mp;
@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    //return super.onStartCommand(intent, flags, startId);
    mp=MediaPlayer.create(this, Settings.System.DEFAULT_RINGTONE_URI);
    mp.setLooping(true);
    mp.start();
    return START_STICKY;
}

@Override
public void onDestroy() {
    super.onDestroy();
    mp.stop();
}

}

舱单文件条目

<service android:name=".WitoService"/>

服务调用代码。

if(!serviceRunning) {
        startService(new Intent(this, WitoService.class));
        serviceRunning=true;
    }else {
        stopService(new Intent(this, WitoService.class));
        serviceRunning=false;
    }

enter code here
java android android-service
1个回答
0
投票

当你的应用目标大于android O时,这是正常的行为。为了让你的服务保持活力,应该让foregroud服务和通知用户。你可以查看这里 https:/developer.android.comaboutversionsoreobbackground#services。

当一个应用程序处于前台时,它可以自由创建和运行前台和后台服务。当一个应用程序进入后台时,它有一个几分钟的窗口,在这个窗口中,它仍然可以创建和使用服务。在该窗口结束时,应用程序被认为是闲置的。此时,系统会停止应用的后台服务,就像应用调用了服务的Service.stopSelf()方法一样。

© www.soinside.com 2019 - 2024. All rights reserved.