Android 如何从活动中关闭服务?

Android 如何从活动中关闭服务?,android,android-activity,service,Android,Android Activity,Service,我正在尝试制作一个只有一个活动的应用程序,当你按下一个按钮时,应用程序将关闭,但服务仍保留在后台。但是,我想在OnCreateOptions菜单中有一个名为“关闭应用程序”的选项按钮,这样当你点击它时,活动就完成了;服务被终止。问题是我知道如何关闭活动,但不知道如何从活动中终止服务。以下是我的部分代码,为了简单起见,我省略了两个基本方法: protected void onCreate(Bundle savedInstanceState) { super.onCreate(sav

我正在尝试制作一个只有一个活动的应用程序,当你按下一个按钮时,应用程序将关闭,但服务仍保留在后台。但是,我想在OnCreateOptions菜单中有一个名为“关闭应用程序”的选项按钮,这样当你点击它时,活动就完成了;服务被终止。问题是我知道如何关闭活动,但不知道如何从活动中终止服务。以下是我的部分代码,为了简单起见,我省略了两个基本方法:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bDone.setOnClickListener(this);
}

public void Onclick(){
        Intent serv = new Intent(Main.this, Bground.class);
        startService(serv);

        finish();
}


public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.closeApp) {
            finish();
        }
        return super.onOptionsItemSelected(item);
}
我试着把意图放在服务上;作为全局变量并写入stopServiceserv;就在终点之上;在OnOptionItemSeected中,但它给了我一个错误


谢谢

在你的桌面上尝试解除绑定服务。

我最终用这种方式解决了这个问题

public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.closeApp) {
        stopService(new Intent(Main.this, Bground.class));
        finish();
    }
只需添加stopservicenewintentmain.this、Bground.class


感谢这篇文章:

使用“serv”作为参数或不使用参数:ContextWrapper类型中的方法UnbindServiceConnection不适用于参数意图。请看这个示例:什么类型的错误?堆栈后跟踪。