我用Java创建了一个服务,但它没有';不要在后台运行

我用Java创建了一个服务,但它没有';不要在后台运行,java,android,service,Java,Android,Service,我正在尝试用java创建一个简单的服务,它将在后台运行。我想在手机上播放一首歌,即使应用程序已关闭。我读了一些文章并观看了教程,但当我关闭应用程序时,我的服务仍然停止 1) 我更改了舱单 <service android:name="com.example.myapplication.ServiceSound" android:exported="true" android:enabled="true">

我正在尝试用java创建一个简单的服务,它将在后台运行。我想在手机上播放一首歌,即使应用程序已关闭。我读了一些文章并观看了教程,但当我关闭应用程序时,我的服务仍然停止

1) 我更改了舱单

<service
            android:name="com.example.myapplication.ServiceSound"
            android:exported="true"
            android:enabled="true">
        </service>
这就是我在MainActivity.java中启动服务的方式

startService(new Intent(getBaseContext(),ServiceSound.class));

我想你需要广播接收机。 所以现在 1-创建广播接收器类并调用服务类

  public class MyBroadcaseReceiver extends BroadcastReceiver {

   @Override
   public void onReceive(Context context, Intent intent) {
       context.startService(new Intent(context,ServiceSound.class));
       Log.e(TAG, "onReceive: BroadCast is started");
   }
}
2-您的服务类定义了这个

       public static String str_receiver = "Your_Package_Name.receiver";
在startCommand上开始您的广播课程

   public int onStartCommand(Intent intent, int flags, int startId) {
        player = MediaPlayer.create(this, Settings.System.DEFAULT_RINGTONE_URI);
        player.start();
        return START_STICKY;
        Intent intent1 = new Intent(this,MyBroadcaseReceiver.class);
        sendBroadcast(intent1);
        return START_STICKY;


       }
现在在MainActivity类中创建一个用于广播的对象
专用广播接收机

内部
onCreate()
定义对象
broadcaseceiver=新的MyBroadcaseCeiver()

最后在MainActivity内调用
onResume()
onPause()

   @Override
    protected void onResume() {
        super.onResume();
        registerReceiver(broadcastReceiver, new IntentFilter(MyService.str_receiver));
    }
别忘了在清单文件中调用广播接收器

           <receiver android:name=".MyBroadcaseReceiver"></receiver>


您的android操作系统版本是什么?您需要前台服务,我如何使用前台服务?您可能遇到的问题是,即使在关闭应用程序后,仍会继续运行该服务。我不知道如何解决这个问题:
   @Override
    protected void onResume() {
        super.onResume();
        registerReceiver(broadcastReceiver, new IntentFilter(MyService.str_receiver));
    }
   @Override
    protected void onPause() {
        super.onPause();
        unregisterReceiver(broadcastReceiver);

    }
           <receiver android:name=".MyBroadcaseReceiver"></receiver>