首页 > 解决方案 > 活动被破坏后服务停止?

问题描述

我正在尝试制作一个非常简单的服务来播放音频文件,方法是放置一个按钮,其 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);
        }
    });

标签: javaandroidserviceprocess

解决方案


正常情况下,通过startService启动服务后,在activity关闭后服务不会被销毁。但是如果用户手动清理任务,整个APP进程会被关闭,Service也会停止。


推荐阅读