Android 媒体播放器停止播放。我需要运行它,即使应用程序被杀死

Android 媒体播放器停止播放。我需要运行它,即使应用程序被杀死,android,service,background,android-mediaplayer,Android,Service,Background,Android Mediaplayer,使用服务来实现问题的目的 代码: 内部舱单: <service android:name=".MyService" android:enabled="true" /> 我的Java类: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCrea

使用服务来实现问题的目的

代码:

内部舱单:

<service
        android:name=".MyService"
        android:enabled="true" />
我的Java类:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void startMethod(View v) {
    startService(new Intent(this, MyService.class));
}

public void stopMethod(View v) {
    stopService(new Intent(this, MyService.class));
}
所以,问题是,当我关闭应用程序时,media player会停止播放音乐或我的默认铃声。因为我使用的是START_STICKY,所以它应该在后台运行

可能是什么问题?我需要播放音乐,即使应用程序在android中使用该服务时被禁用。如果有什么不对劲,请引导。谢谢

编辑

上述问题对于较低版本的设备运行良好。对于更高版本,我们可以使用JobService

现在的问题是,如果我想在后台服务中检查特定时间,并且在特定时间我必须显示一条toast消息,该怎么办。到目前为止,我已经在onStartCommand()方法中完成了这项工作,并将时间与.equals方法进行了比较。但是,我认为还有另外一种方法

onStartCommand()中的我的代码:


吐司在这些特定时间不显示。因为它仅在onStartCommand()方法调用时显示。那么,我如何才能做到这一点呢?

如果这在较低版本的android设备上有效,那么您可以尝试在较高版本的android设备上使用JobService

遵循以下链接并成为作业调度专业人员:


你使用的是android 8.0(Oreo)吗?不,我使用的是android 6.0棉花糖和7.0 nagut。如果我们使用的是8.0,那么哪些东西是必需的?在更高版本的android设备中,一旦手机进入睡眠状态,系统可能会停止服务。对更高版本的设备使用JobService。你确定你没有在ondestroy()中调用stopService()吗?非常感谢你,伙计。。。(先生)如果您启动JobService,请使用onStartJob(),否则,对于较低版本,请继续使用onStartCommand()。因此,我检查onStartCommand()方法中是否存在条件的方法是正确的?我必须检查后台服务中的时间,它随特定时间而变为eual,然后应该显示toast。怎样不使用JobService。是的,您可以使用报警管理器,甚至是延迟后处理程序在特定时间间隔后运行任务。
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void startMethod(View v) {
    startService(new Intent(this, MyService.class));
}

public void stopMethod(View v) {
    stopService(new Intent(this, MyService.class));
}
if(currentTime.equals("Thu Mar 29 06:18:00 GMT 2018")){
        Toast.makeText(this, ""+currentTime, Toast.LENGTH_SHORT).show();
    }
    if(currentTime.equals("Thu Mar 29 06:20:00 GMT 2018")){
        Toast.makeText(this, ""+currentTime, Toast.LENGTH_SHORT).show();
    }
    if(currentTime.equals("Thu Mar 29 06:21:00 GMT 2018")){
        Toast.makeText(this, ""+currentTime, Toast.LENGTH_SHORT).show();
    }