我已经完成link并执行了 代码。它工作正常。但现在我需要停止服务。我怎样才能做到这一点?我在MyAlarmService中覆盖了stopservice方法,但我没有得到停止服务的地方。我的要求是,一旦打开通知,服务就应该停止。我怎么能这样做?
请帮助我。
答案 0 :(得分:1)
在你的服务中创建一个BroadcastReciever,在它的onRecieve方法中你可以调用stopSelf(),这将停止服务。现在您需要发送一个广播事件,以便您的服务可以捕获它。您可以通过您的未决意图来实现。在您关注的教程中,您可以看到一旦用户点击通知就会打开MainActivity。 MainActivity打开后,您可以向您的服务发送广播,从而停止您的服务。这是一个很好的方法。另一种方法是在服务中创建一个静态变量:
public class MyAlarmService extends Service {
private static MyAlarmService mMyAlarmService;
public static MyAlarmService getInstace(){
return mMyAlarmService;
}
@Override
public void onCreate() {
mMyAlarmService = this;
super.onCreate();
}
}
public class MyAlarmService extends Service {
private static MyAlarmService mMyAlarmService;
public static MyAlarmService getInstace(){
return mMyAlarmService;
}
@Override
public void onCreate() {
mMyAlarmService = this;
super.onCreate();
}
}
当用户点击MainActivity中的通知时,您可以调用MyAlarmService.getInstance()。stopSelf();当然你必须先进行一些空值检查。虽然这不是最好的方法,但它应该可以解决问题。