Android 背景音乐是一个独立的背景过程吗?

Android 背景音乐是一个独立的背景过程吗?,android,linux,multithreading,process,Android,Linux,Multithreading,Process,这是一个关于进程与线程的澄清问题。我知道每个应用程序都将作为自己的独立进程运行,这意味着它有自己的linux进程id,进程由线程和并发运行的代码组成。假设我启动愤怒的小鸟,我知道该应用程序本身有一个进程id。背景音乐是它自己的独立进程(由另一个播放音乐的应用程序启动)还是原始进程中的一个独立线程?我想它只是一个媒体(MediaPlayer)在同一个应用程序中播放,可能在单独的线程中,但不一定。我认为这只是一个媒体(MediaPlayer)在同一个应用程序中播放,可能在单独的线程中,但不一定。我认

这是一个关于进程与线程的澄清问题。我知道每个应用程序都将作为自己的独立进程运行,这意味着它有自己的linux进程id,进程由线程和并发运行的代码组成。假设我启动愤怒的小鸟,我知道该应用程序本身有一个进程id。背景音乐是它自己的独立进程(由另一个播放音乐的应用程序启动)还是原始进程中的一个独立线程?

我想它只是一个媒体(MediaPlayer)在同一个应用程序中播放,可能在单独的线程中,但不一定。

我认为这只是一个媒体(MediaPlayer)在同一个应用程序中播放,可能在单独的线程中,但不一定。

我认为这只是一个媒体(MediaPlayer)在同一个应用程序中播放,可能在单独的线程中,但不一定。

我认为这只是一个媒体(MediaPlayer)在同一个应用程序中播放,可能在单独的线程中,但不一定。背景音乐使用单独的线程。看看这个例子

公共课专业扩展活动{

MediaPlayer ourSong;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pro);
    ourSong = MediaPlayer.create(Pro.this, R.raw.sou);
    // music started
    ourSong.start();
    Thread time = new Thread(){
        public void run(){
            try{
                sleep(2000);

            } catch(InterruptedException e){
                e.printStackTrace();
            }finally{
                Intent openMainActivity = new Intent("com.example.disd.Menu");
                startActivity(openMainActivity);
            }
        }
    };
    time.start();
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    ourSong.release();
    finish();
}
}


请参阅链接

背景音乐使用单独的线程。看看这个例子

公共课专业扩展活动{

MediaPlayer ourSong;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pro);
    ourSong = MediaPlayer.create(Pro.this, R.raw.sou);
    // music started
    ourSong.start();
    Thread time = new Thread(){
        public void run(){
            try{
                sleep(2000);

            } catch(InterruptedException e){
                e.printStackTrace();
            }finally{
                Intent openMainActivity = new Intent("com.example.disd.Menu");
                startActivity(openMainActivity);
            }
        }
    };
    time.start();
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    ourSong.release();
    finish();
}
}


请参阅链接

背景音乐使用单独的线程。看看这个例子

公共课专业扩展活动{

MediaPlayer ourSong;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pro);
    ourSong = MediaPlayer.create(Pro.this, R.raw.sou);
    // music started
    ourSong.start();
    Thread time = new Thread(){
        public void run(){
            try{
                sleep(2000);

            } catch(InterruptedException e){
                e.printStackTrace();
            }finally{
                Intent openMainActivity = new Intent("com.example.disd.Menu");
                startActivity(openMainActivity);
            }
        }
    };
    time.start();
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    ourSong.release();
    finish();
}
}


请参阅链接

背景音乐使用单独的线程。看看这个例子

公共课专业扩展活动{

MediaPlayer ourSong;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pro);
    ourSong = MediaPlayer.create(Pro.this, R.raw.sou);
    // music started
    ourSong.start();
    Thread time = new Thread(){
        public void run(){
            try{
                sleep(2000);

            } catch(InterruptedException e){
                e.printStackTrace();
            }finally{
                Intent openMainActivity = new Intent("com.example.disd.Menu");
                startActivity(openMainActivity);
            }
        }
    };
    time.start();
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    ourSong.release();
    finish();
}
}


请参考链接

我不知道你为什么问这个问题,不可能给出明确的答案。任何应用程序开发人员都可以创建一个
服务
,该服务在一个单独的进程中运行,以播放背景音乐(如果他们选择这样做的话)。这似乎是不必要的,因为标准的安卓
MediaPlayer
处理自己的线程,这意味着它可以在应用程序进程中的
活动
服务
中安全使用。很难区分所有定义。媒体播放器是否是一个单独的进程(是另一个应用程序?)请阅读-一个应用程序由一个线程上运行的单个进程组成。如果您创建一个
MediaPlayer
实例,它将在同一个线程上运行,但它也会创建自己的工作线程来处理音乐播放。我不确定您为什么要问这个问题,也不可能给出明确的答案。任何应用程序开发人员都可以创建一个
服务
,该服务在一个单独的进程中运行,以播放背景音乐(如果他们选择这样做的话)。这似乎是不必要的,因为标准的安卓
MediaPlayer
处理自己的线程,这意味着它可以在应用程序进程中的
活动
服务
中安全使用。很难区分所有定义。媒体播放器是否是一个单独的进程(是另一个应用程序?)请阅读-一个应用程序由一个线程上运行的单个进程组成。如果您创建一个
MediaPlayer
实例,它将在同一个线程上运行,但它也会创建自己的工作线程来处理音乐播放。我不确定您为什么要问这个问题,也不可能给出明确的答案。任何应用程序开发人员都可以创建一个
服务
,该服务在一个单独的进程中运行,以播放背景音乐(如果他们选择这样做的话)。这似乎是不必要的,因为标准的安卓
MediaPlayer
处理自己的线程,这意味着它可以在应用程序进程中的
活动
服务
中安全使用。很难区分所有定义。媒体播放器是否是一个单独的进程(是另一个应用程序?)请阅读-一个应用程序由一个线程上运行的单个进程组成。如果您创建一个
MediaPlayer
实例,它将在同一个线程上运行,但它也会创建自己的工作线程来处理音乐播放。我不确定您为什么要问这个问题,也不可能给出明确的答案。任何应用程序开发人员都可以创建一个
服务
,该服务在一个单独的进程中运行,以播放背景音乐(如果他们选择这样做的话)。这似乎是不必要的,因为标准的安卓
MediaPlayer
处理自己的线程,这意味着它可以在应用程序进程中的
活动
服务
中安全使用。很难区分所有定义。媒体播放器是否是一个单独的进程(是另一个应用程序?)请阅读-一个应用程序由一个线程上运行的单个进程组成。如果创建
MediaPlayer
的实例,它将在同一线程上运行,但它也会创建自己的工作线程来处理音乐播放。但是如果它是媒体播放器,它不需要运行自己的linux进程,因为它是一个独立的应用程序吗?我认为它本身不需要是一个独立的linux进程,因为MediaPlayer类只提供访问媒体文件、解码、播放和控制它们所需的实现。你不这么认为吗?但如果它是一个媒体播放器,它不需要运行自己的linux进程,因为它是一个独立的应用程序吗?我认为它本身不需要是一个独立的linux进程,因为MediaPlayer类只提供访问媒体文件、解码、播放和控制它们所需的实现。你不这么认为吗?但如果它是一个媒体播放器,它不需要运行自己的linux进程,因为它是一个独立的应用程序吗?我认为它本身不需要是一个独立的linux进程,因为MediaPlayer类只提供访问媒体文件、解码、播放和控制它们所需的实现。你不这么认为吗?但如果它是一个媒体播放器,它不需要运行自己的linux进程,因为它是一个独立的应用程序吗?我不认为它需要是一个独立的lin