如何从活动中关闭服务?

时间:2014-10-20 08:06:32

标签: android android-activity service

我正在尝试创建一个只有一个活动的应用,当您按下某个按钮时,应用已关闭,但服务仍在后台。但是,我想要一个名为“关闭应用程序”的选项按钮(在onCreateOptionsMenu中),因此当您单击它时,活动为finish();并且服务被终止。问题是我知道如何关闭Activity,但不知道如何从Activity中删除服务。这是我的代码的一部分(为了简单起见,我省略了几个基本方法):

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);
}

我尝试将Intent serv;作为全局变量,并将stopService(serv);写在onOptionsItemSeected的finish();正上方,但它给了我一个错误。

谢谢!

2 个答案:

答案 0 :(得分:1)

onStop()中尝试 unbindService()

答案 1 :(得分:1)

我终于解决了这个问题

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

只需添加stopService(new Intent(Main.this, Bground.class));

感谢此帖:How to call stopservice() method of Service class from the calling activity class