如何从另一个Activity调用stopService?

时间:2015-01-12 07:38:32

标签: android

Android编程新手。 您能告诉我如何将视图作为参数传递吗?

public class MainActivity extends ActionBarActivity {
  ...
  public void stopService(View view) {
    stopService(new Intent(getBaseContext(), MyService.class));
  }
}

public class MySmsReceiver extends BroadcastReceiver {
  ...
  MainActivity obj = new MainActivity();
  obj.stopService();
}

我已正确编码MyService.java。

谢谢

1 个答案:

答案 0 :(得分:2)

首先,您必须从onStop()中的上一个活动解除绑定服务。否则你可能会遇到窗口泄露异常。

放置代码以停止应用程序类中的服务。

public class AppController extends Application {
  private static AppController mInstance;

  public static synchronized AppController getInstance() {
    return mInstance;
  }
  .........

  public void stopService(View view) {
    stopService(new Intent(getBaseContext(), MyService.class));
  }
}

然后,您可以从任何类中获取Application对象,并且您将能够从任何活动中停止该服务,但在此之前,您必须从onStop()中的其他活动解除该服务的绑定。

要从任何地方停止服务,请致电:

AppController.getInstance().stopService();