在这里,我尝试了简单的服务程序。启动服务可以正常工作并生成Toast,但停止服务则不能。此简单服务的代码如下:
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();
}
}
调用此服务的活动的代码如下:
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()方法中生成吐司。我已经在这里看到了很多有关停止服务问题的帖子,但并不令人满意,因此发布了新问题。希望得到满意的答复。
onDestroyed()
是错误的名字
onDestroy()
您是否仅在此问题或代码中犯了错误?
问题内容: 我已经到了秃顶几步之遥… 我正在尝试运行一项服务,该服务将检查我工作中的服务器是否正在运行。应该每5分钟执行一次。 我经历过TimerTask,ScheduledExecutorService,最后是Handler。他们都工作了好几个小时,除了一些不准确的地方外,还有1-5分钟的时间,然后突然,“计时器”就停止了发射。 现在,我已经了解到,如果Scheduler遇到未捕获的异常,它将停
问题内容: 我目前有一项使用以下活动在活动的onCreate方法中启动的服务: 现在,我需要能够在按下按钮时停止该服务,并在再次按下按钮时再次重新启动它,但是我不确定如何停止该服务并在onCreate方法之外重新启动它。 我想我需要以不同于当前正在执行的方式启动该服务?但是我不确定最好的方法。 我曾在android中查看过stop服务,但是他们启动服务的方法似乎在onCreate中不起作用。 我的
我可以安全地停止我的主活动的onDestroy方法中的服务吗?我知道onDestroy不能保证被调用,但我也想让我的服务运行,直到应用程序被销毁。 我在想,也许在所有活动被破坏的情况下,服务也会被破坏?
在我的一个活动中,有一个使用mediaPlayer播放音乐的按钮。它还可以选择在后台播放音乐,或者在活动结束时停止。 我用这个代码。 这很好用。现在的问题是,当用户返回活动并按下播放按钮时,它会启动一个新的mediaPlayer并播放新的音乐。当新音乐开始播放时,我想在后台停止播放以前的音乐。 这是我的代码 以及MediaPlayer声明 在创建之前
我的情况是: 我正在运行一个node.js服务器 我用于启动服务器的命令是: 然而,在某些情况下,我们的代码进入了一个要求很高的函数,导致脚本工作非常缓慢或无响应。我们正在努力优化它。 在这种情况下,我会停止服务器,并在需要时启动一个新的服务器,比如说 但是如果我想重新启动最近停止的节点。js服务器(或者重新启动它而不是停止它)这样,我希望进程停止并再次以新的速度运行。 如果我再次启动它,或者重新
我的应用程序设置为(非故意)服务将使用gps/网络侦听器轮询位置。它工作得很好,因为我负责服务何时结束(即在找到新位置或达到超时时调用stopSelf())。然而,我最近读到,intentService可能更适合长时间运行的任务,因为它不是在ui线程上运行的,而是在自己的工作线程上运行的。问题是,现在它不允许服务在任何时间运行(我假设这是因为服务中没有任何活动发生,而侦听器等待接收位置,因此服务本