如何停止自定义android服务?

Posted

技术标签:

【中文标题】如何停止自定义android服务?【英文标题】:How to stop custom android service? 【发布时间】:2014-07-22 03:35:38 【问题描述】:

我有一个服务:

[Service]
public class LocationService : Service, ILocationListener

....

public override StartCommandResult OnStartCommand(...)
 return StartCommandResult.Sticky;  

在一种环境中开始

new Task(() =>

Application.Context.StartService(new Intent(Application.Context, typeof(LocationService)));
).Start();

如何从其他地方停止此服务?

我尝试过这样做:

Application.Context.StopService(new Intent(Application.Context, typeof(LocationService))); 

但它并不总是有效

【问题讨论】:

在什么情况下它似乎不起作用? 随机大小写。它的背景 gps 服务。有时会停止,有时不会 【参考方案1】:

这些可能的重复可能会解决您的问题:

android LocationListener not stopping GPS use

android how to stop gps

听起来最重要的是确保没有任何东西仍在请求位置更新。

【讨论】:

【参考方案2】:

答案就在这里:

Stop Location Listener in Android

在我的例子中,它的调用方法 StopLocationUpdates

[Service]
public class LocationService : Service, ILocationListener

....

public override StartCommandResult OnStartCommand(...)
 
     return StartCommandResult.Sticky;
 

public void StopLocationUpdates()

    LocManager.RemoveUpdates(this);
    LocManager= null;



【讨论】:

以上是关于如何停止自定义android服务?的主要内容,如果未能解决你的问题,请参考以下文章

如何找出android OS是不是停止服务

自定义 SSL 处理在 Android 2.2 FroYo 上停止工作

Android-Service

Android自定义ArrayAdapter:滚动时“不幸的是,应用程序已停止”

尝试在 android 中使用自定义 imageview (topcrop),但应用程序停止

如何在 android 中自定义 com.coboltforge.slidemenuexample 库?