当应用程序被刷掉时服务停止

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当应用程序被刷掉时服务停止相关的知识,希望对你有一定的参考价值。

当应用程序关闭时,我正在尝试播放mp3。它在我离开应用程序时有效,但是当我从任务管理器中将其滑出时,歌曲结束。如何让服务在关闭后继续播放?这是我的服务:

@Override
public IBinder onBind(Intent intent) {
    return null;
}
@Override
public void onCreate() {
    super.onCreate();
}
@Override
public void onTaskRemoved(Intent rootIntent) {
    Log.d("MusicService", "onTaskRemoved");
}
@Override
public void onDestroy() {
    super.onDestroy();
}
@Override

public int onStartCommand(Intent intent, int flags, int startId) {
    return super.onStartCommand(intent, flags, startId);
}

这是我的主要活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    start = (Button)findViewById(R.id.start);
    stop = (Button)findViewById(R.id.stop);
    mp = MediaPlayer.create(getApplicationContext(),R.raw.gucci);
    start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startService(new Intent(MainActivity.this,MyService.class));
            mp.start();

        }
    });
    stop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mp.pause();
            stopService(new Intent(MainActivity.this,MyService.class));
        }
    });
}
答案

注意:其他方式可能无法使用(如果不可用则忽略)。

不要让用户从最近的菜单中清除它。

将此清单属性用于Player应用程序中的每个活动组件

机器人:excludeFromRecents

另一答案

只需在服务类的onstartcommand方法中返回START_STICKY即可。它会在后台永远运行。

以上是关于当应用程序被刷掉时服务停止的主要内容,如果未能解决你的问题,请参考以下文章

小米Java程序员第二轮面试10个问题,你是否会被刷掉?

导致资产预编译在heroku部署上失败的代码片段

当 ViewPager 中的片段出现和消失时如何执行一些代码

04. pt-deadlock-logger

停止位置侦听器服务 Android

OJ1147括号匹配加强版(栈)