在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..."); }
这是一个完整的例子,包括如何停止服务。