как убить музыкальный сервис? - PullRequest
1 голос
/ 27 ноября 2011

Я делаю простое задание об уничтожении запущенных сервисов. я нашел метод "killBackgroundProcesses", чтобы убить фоновое приложение или службы. я пытался убить фоновые приложения и сервисы. запущенные приложения и некоторые сервисы убиты хорошо, но особенно Music Service никогда не убивается ...

Я хочу создать приложение, которое убивает сервис фоновой музыки. приложение имеет только одну кнопку (имя «Kill Music») Если пользователь нажимает кнопку, фоновая музыка должна быть убита.

музыка играет по умолчанию музыкальный проигрыватель .. как я могу убить фоновую музыку? Есть ли другой способ убить музыкальный сервис?

вот мой код, который я попробовал .. Любое предложение будет оценено. спасибо.

public class Android32_TaskKillerActivity extends Activity {
ActivityManager manager;  
List<RunningServiceInfo> list;
String str="";  //to contain running Servies name and write on Toast message.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button bt = (Button)findViewById(R.id.button1);  //to kill All Services
    manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    list = manager.getRunningServices(300);  //save current Servies to List

    bt.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            for(int i=0; i<list.size(); i++){
                RunningServiceInfo info = list.get(i);
                String temp = info.service.getPackageName();
                     str += temp+"\n";
                manager.killBackgroundProcesses(temp);//killing services one by one to the end.

            }
            Toast.makeText(getBaseContext(), "All Services are finished \n" + str, 3000).show();

        }
    });

}
}

1 Ответ

3 голосов
/ 27 ноября 2011

Я хочу создать приложение, которое убивает сервис фоновой музыки. приложение имеет только одну кнопку (имя «Kill Music»). Если пользователь нажимает кнопку, фоновая музыка должна быть убита.

Это невозможно.

killBackgroundProcesses() убьет фон процессов. Однако существует несколько определений слова «фон» (и, наоборот, «передний план»). Приложение «Музыка» вызвало startForeground(), чтобы указать Android, что оно является частью пользовательского интерфейса переднего плана и не должно закрываться из-за нехватки памяти, если это возможно.

Цитирование killBackgroundProcesses() документации:

Это то же самое, что ядро, убивающее эти процессы для восстановления памяти; система позаботится о перезапуске этих процессов в будущем по мере необходимости.

Следовательно, killBackgroundProcesses() не должно убивать службы, использующие startForeground(), такие как приложение Music.

Пользователь может остановить приложение «Музыка» либо через приложение «Музыка», либо, если он особенно странный пользователь, через приложение «Настройки».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...