我正在尝试创建一个只有一个活动的应用,当您按下某个按钮时,应用已关闭,但服务仍在后台。但是,我想要一个名为“关闭应用程序”的选项按钮(在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();
正上方,但它给了我一个错误。
谢谢!
答案 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