在Intent之后停止服务-Android

And*_*vil 0 android

在我的android应用程序中,我有一个名为A的活动。从A处,我调用了一个后台服务。在该服务中,onStartCommand我将执行一些操作AsyncTask并提供了一个转移到另一个名为B的活动的意图。

1.调用Intent后如何停止服务本身?

编辑:我试图打电话,StopSelf();但没有结束我的服务。

2.到达B后,后退按钮将不起作用。目前,如果按后退按钮,我仍然可以转到活动A。

我的意图

Intent dialogIntent = new Intent(UserLoginValidationService.this,SplashScreen.class);                                            
                        dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        dialogIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);                       
                        stopSelf();
                        startActivity(dialogIntent);
Run Code Online (Sandbox Code Playgroud)

编辑:如何调用finishAffinity();服务?

任何帮助表示赞赏。

小智 7

这可能是最好的方法。

  1. 创建一个意向服务。
  2. 从启动服务的地方在您的A活动中注册本地广播接收器。
  3. 从您的意图服务进行广播,并在您的活动中接收它。
  4. 在那个BroadcastReceiver代码中做有需要的事情。

注意:在Activity onDestroy()方法中注销BroadcastReceiver。

stopSelf()确实会停止服务,但可能会花费很少的时间。您可以通过将日志放在onDestroy()服务方法中来进行交叉检查。