在android中停止服务

这里我尝试了简单的服务程序。 开始服务工作正常,并生成吐司,但停止服务不。 这个简单的服务代码如下:

public class MailService extends Service { @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } public void onCreate(){ super.onCreate(); Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show(); } public void onDestroyed(){ Toast.makeText(this, "Service Destroyed", Toast.LENGTH_SHORT).show(); super.onDestroy(); } } 

从这个服务被调用的Activity的代码如下:

 public class ServiceTest extends Activity{ private Button start,stop; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.service_test); start=(Button)findViewById(R.id.btnStart); stop=(Button)findViewById(R.id.btnStop); start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub startService(new Intent(ServiceTest.this,MailService.class)); } }); stop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub stopService(new Intent(ServiceTest.this,MailService.class)); } }); } } 

帮助我停止在onDestroy()方法生成吐司停止button的服务。 我已经在这里看到了很多关于停止服务问题的post,但是并不满意,所以发布了新的问题。 希望得到满意的答复。

 onDestroyed() 

是错误的名字

 onDestroy() 

你只在这个问题或你的代码中犯了错误吗?

此代码适用于我:请检查此链接
这是我的代码,当我停止并开始在活动中的服务

 case R.id.buttonStart: Log.d(TAG, "onClick: starting srvice"); startService(new Intent(this, MyService.class)); break; case R.id.buttonStop: Log.d(TAG, "onClick: stopping srvice"); stopService(new Intent(this, MyService.class)); break; } } } 

而在服务阶层:

  @Override public void onCreate() { Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show(); Log.d(TAG, "onCreate"); player = MediaPlayer.create(this, R.raw.braincandy); player.setLooping(false); // Set looping } @Override public void onDestroy() { Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show(); Log.d(TAG, "onDestroy"); player.stop(); } 

快乐编码!

停止服务,我们必须使用方法stopService()

  Intent myService = new Intent(MainActivity.this, BackgroundSoundService.class); //startService(myService); stopService(myService); 

那么服务中的方法onDestroy()被调用:

  @Override public void onDestroy() { Log.i(TAG, "onCreate() , service stopped..."); } 

这是一个完整的例子,包括如何停止服务。