当前位置: 首页 > 面试题库 >

Android:在onCreate()中创建的停止/启动服务

拓拔骁
2023-03-14
问题内容

我目前有一项使用以下活动在活动的onCreate方法中启动的服务:

Intent intentService = new Intent(this, MainService.class);
this.startService(intentService);

现在,我需要能够在按下按钮时停止该服务,并在再次按下按钮时再次重新启动它,但是我不确定如何停止该服务并在onCreate方法之外重新启动它。

我想我需要以不同于当前正在执行的方式启动该服务?但是我不确定最好的方法。

我曾在android中查看过stop服务,但是他们启动服务的方法似乎在onCreate中不起作用。

我的代码的完整概述:

public class MainActivity extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            lock = (Button) this.findViewById(R.id.lock);
            unlock = (Button) this.findViewById(R.id.unlock);

            lock.setOnClickListener(btn_lock);
            unlock.setOnClickListener(btn_unlock);

            unlock.setVisibility(View.VISIBLE);

            lock.setVisibility(View.GONE);

            Intent intentService = new Intent(this, MainService.class);
            this.startService(intentService);

        }
private OnClickListener btn_lock = new OnClickListener() {
        public void onClick(View v) {
                unlock.setVisibility(View.VISIBLE);
                lock.setVisibility(View.GONE);


        }
    };
private OnClickListener btn_unlock = new OnClickListener() {
        public void onClick(View v) {
                unlock.setVisibility(View.GONE);
                lock.setVisibility(View.VISIBLE);

        }
    };

问题答案:

每当您想要启动服务时,您所需要做的就是

 startService(new Intent(this, MainService.class));

并随时停止服务

stopService(new Intent(this, MainService.class));

请记住,服务需要在AndroidManifest.xml中声明。如您所说,您的服务正在运行。我确定你已经做到了。还是AndroidManifest.xml

 <service android:enabled="true" android:name=".MainService" />


 类似资料:
  • 通常,当我创建一个Android服务时,我会实现方法,但在我的上一个项目中,这不起作用。我尝试实现,这似乎起作用了。 问题是:当我必须实现一个服务时,需要哪种方法?我必须实现哪些方法?、还是两者兼而有之?每一个角色是什么?

  • 问题内容: 在这里,我尝试了简单的服务程序。启动服务可以正常工作并生成Toast,但停止服务则不能。此简单服务的代码如下: 调用此服务的活动的代码如下: 使用该停止按钮帮助我停止服务,该按钮在onDestroy()方法中生成吐司。我已经在这里看到了很多有关停止服务问题的帖子,但并不令人满意,因此发布了新问题。希望得到满意的答复。 问题答案: 是错误的名字 您是否仅在此问题或代码中犯了错误?

  • 我已经从以下网站下载了“jenkins-1.501.zip”http://jenkins-ci.org/content/thank-you-downloading-windows-installer . 我已经解压缩了zip文件并成功地在Windows7上安装了Jenkins。詹金斯在好的。我想从控制台停止Jenkins服务。我该怎么做?通过控制台/命令行启动和重新启动的方式是什么?

  • 问题内容: 我已经从http://jenkins-ci.org/content/thank-you-downloading-windows- installer 下载了“ jenkins-1.501.zip” 。 我已经解压缩了zip文件,并在Windows 7上成功安装了Jenkins。詹金斯的表现不错。我想从控制台停止Jenkins服务。我怎样才能做到这一点?通过控制台/命令行启动和重新启动的

  • 问题内容: 我已经到了秃顶几步之遥… 我正在尝试运行一项服务,该服务将检查我工作中的服务器是否正在运行。应该每5分钟执行一次。 我经历过TimerTask,ScheduledExecutorService,最后是Handler。他们都工作了好几个小时,除了一些不准确的地方外,还有1-5分钟的时间,然后突然,“计时器”就停止了发射。 现在,我已经了解到,如果Scheduler遇到未捕获的异常,它将停

  • 我可以安全地停止我的主活动的onDestroy方法中的服务吗?我知道onDestroy不能保证被调用,但我也想让我的服务运行,直到应用程序被销毁。 我在想,也许在所有活动被破坏的情况下,服务也会被破坏?