繁体   English   中英

服务在活动被销毁后停止?

[英]Service Stops after activity is destroyed?

我正在尝试制作一个非常简单的服务,播放一个音频文件,通过放置一个按钮,其onClick() - >启动服务,然后播放声音。 但当我销毁活动时,歌曲停止了(我无法告诉服务状态)[我在服务类的onDestroy方法中放了一个吐司,但它没有出来。]

任何人都可以帮忙吗?!!

AndroidManifest

  <service android:name=".ExampleService"
        android:enabled="true"
        android:exported="true"
        ></service>

ExampleService.java

public class ExampleService extends Service {
MediaPlayer mpService;
private final static String TAG="ExampleService";

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    mpService.start();

    return START_STICKY;
}
@Override
public void onCreate() {
    super.onCreate();
    mpService=MediaPlayer.create(this,R.raw.lwyashko);
    Toast.makeText(this,"*** STARTED *** ",Toast.LENGTH_SHORT).show();
}
@Override
public void onStart(Intent intent, int startId) {
    super.onStart(intent, startId);
}
@Override
public void onDestroy() {

    Log.d(TAG,"onDestroy was Called ");
    Toast.makeText(this,"Service Destroyed",Toast.LENGTH_SHORT).show();
}

@Nullable
@Override

public IBinder onBind(Intent intent) {
    return null;
}

}

MainActivity.java

   playService.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        i=new Intent(getApplication(),ExampleService.class);
        startService(i);
        }
    });

从API 26开始,通常只允许前台服务在没有活动的情况下运行。 通过在服务中调用startForeground(),可以使服务成为前台服务。 您需要在通话中创建并提供通知。 这是相关的文档页面。

通常,在startService启动服务之后,活动关闭后不会销毁该服务。 但是,如果用户手动清理任务,则将关闭整个APP进程并停止服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM