Остановить или убить службу - PullRequest
3 голосов
/ 22 февраля 2012

Я разрабатываю приложение диспетчера задач.

В этом приложении я показываю пользователю список запущенных приложений и кнопку уничтожения рядом с каждым приложением.Когда пользователь нажимает кнопку «убить», соответствующая активность будет уничтожена, и я использовал

      activitymanager.killbackgroundprocesses(packageName)

. Я создал другое приложение, называемое уведомлением о службе, где пользователь может запускать и останавливать службу, нажимая кнопку «Запуск службы» и кнопку «Стоп».service "соответственно .. Затем, прежде чем запустить приложение диспетчера задач, я запустил службу из приложения уведомления службы.Таким образом, это действие было отображено в моем приложении диспетчера задач.

Но когда я убиваю это действие, оно исчезает из списка, а затем появляется снова, потому что служба перезапускается. Как мне тогда убить службу?

Я использовал startService и onCreate для запуска службы и показывал некоторые уведомления, а stopService и onDestroy для остановки службы ...

Ответы [ 2 ]

8 голосов
/ 04 апреля 2012

Я наконец-то нашел ответ на свой вопрос ...

После использования

activitymanager.killbackgroundprocesses(packageName) , 

мы должны проверить, есть ли какие-либо службы, работающие под этим именем пакета или именем процесса.

Тогда мы должны использовать

stopService(new Intent().setComponent(serviceInfos.get(i).service))

Но это вернет ошибку, потому что Android не позволяет нам остановить другой сервис

Так что я использовал эти две строки в манифестеа затем запустил мое приложение на компьютере сборки

coreApp="true" 
android:sharedUserId="android.uid.system"

Эти две строки находятся в файле манифеста настроек Android, который позволяет настройкам останавливать службу, если пользователь хочет.

Итак, действиеубили вместе со службой ... :)

И помните, это работало только на сборочной машине ....

2 голосов
/ 22 февраля 2012

Попробуйте использовать это разрешение в файле манифеста Android.

 <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />

и посмотрите на эту ссылку, это может быть полезно ... http://developer.android.com/reference/android/content/Context.html#startService%28android.content.Intent%29

и это: Запустить сервис на onClick

...