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

标签 java android android-service

我目前有一项服务在 Activity 的 onCreate 方法中启动,使用:

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

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

我想我需要以不同于我目前正在做的方式启动服务?但我不确定最好的方法。

我看过stop service in android但是他们启动服务的方法似乎在 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" />

关于java - Android:停止/启动在 onCreate() 中创建的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16876538/

相关文章:

android - 如何实现Android广播接收器

android - 调用 onTaskRemoved 时如何防止服务停止?

android - Android 系统服务监听器是否已本地化到我的应用程序实例?

android - 如何获取标记文本的点击事件

java - 成功打印康威生命游戏的初始游戏板时出现编译器错误

java - 应用程序 sati(进程 com.example.sati)意外停止。请重试。[强制关闭]

java - 从字节数组中获取文件名

android - 如果焦点是 edittext,则禁止滚动 recyclerview

android - onPause() 中的 startActivity 在打开新应用后无法正常工作

java - 获取java数组中n个最大值的索引