android - 在android中按下主页按钮时退出应用程序

标签 android

我有一个应用程序,里面有背景音乐。当我按下主页按钮时,背景音乐仍在播放。之后,当我单击主页按钮右侧的最近使用的应用程序按钮,并通过滑动或按 X 关闭应用程序时,它会重新启动,就像应用程序再次启动一样,而不是关闭当前播放的音乐。我该如何解决这个问题?

我在哪里添加 onTaskRemoved() 方法?

package com.example.dmacs.myapplication;

/**
 * Created by dmacs on 4/8/16.
 */
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;

import java.util.Random;

/**
 * Created by digen on 3/8/16.
 */
public class BackgroundAudioService extends Service implements MediaPlayer.OnCompletionListener {
    MediaPlayer mediaPlayer;

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

    @Override
    public void onCreate() {
        int mfile[] = new int[5];

        mfile[0]= R.raw.bgm1;
        mfile[1]= R.raw.bgm2;
        mfile[2]= R.raw.bgm3;
        mfile[3]= R.raw.bgm4;
        mfile[4]= R.raw.bgm5;

        Random random = new Random();
        int Low = 0;
        int High = mfile.length;
        int randomInt = random.nextInt(High-Low) + Low;



        mediaPlayer = MediaPlayer.create(this, mfile[randomInt]);// raw/s.mp3
        mediaPlayer.setOnCompletionListener(this);
    }

        @Override
        public int onStartCommand (Intent intent,int flags, int startId){
            if (!mediaPlayer.isPlaying()) {
                mediaPlayer.start();
            }
            return START_STICKY;
        }

    public void onDestroy() {
        if (mediaPlayer.isPlaying()) {
            mediaPlayer.stop();
        }
        mediaPlayer.release();

    }

    public void onCompletion(MediaPlayer _mediaPlayer) {
        stopSelf();
    }



}

最佳答案

点击主页按钮显然不会停止 Service在后台运行并将应用程序从“最近”中滑出也不起作用,操作系统将重新启动 Service因为START_STICKYonStartCommand() 返回.

你只需要停止 Service在适当的时候(例如,在 onPause() 中)通过调用 stopService() .

停止你的 Service当你的应用程序被刷出最近,你可以覆盖 onTaskRemoved()并调用stopSelf()从那里:

@Override
public void onTaskRemoved(Intent rootIntent) {
    stopSelf();
}

关于android - 在android中按下主页按钮时退出应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38824297/

相关文章:

android - android的RelativeLayout属性列表

android - 我正在尝试使用 "Pdf creation library"在 flutter 应用程序中生成 pdf。在用其他语言生成 pdf 时会出现异常

android - 自定义 android gradle 插件无法加载类

android - proguard 混淆后,应用程序在 asynctask(服务器 api 调用)中崩溃

android - 在android中单击按钮时在可扩展 ListView 中获取edittext的值

android - Listview 上的最后一项被截断

Android OkHTTP 设置 NTCredentials

android - 防止新 Intent 或切换应用程序破坏 Activity

安卓联系人 : Incorrect localized collation/sorting

javascript - Deezer Javascript SDK playAlbum 自动播放标志在 Android 上被忽略