如何以编程方式强制停止android服务

当我按下停止按钮通知我服务已停止但实际上它仍在后台工作我在我的onStartCommand()方法中使用计时器每秒重复一次时,我制作了两个按钮来启动服务和另一个停止它是原因..?以及如何立即强制停止服务。


public int onStartCommand(Intent intent, int flags, int startId) {

    Toast.makeText(getApplicationContext(),"start..",Toast.LENGTH_SHORT).show();

    new Timer().scheduleAtFixedRate(new TimerTask() {


        private Handler handler = new Handler(){

            @Override

            public void dispatchMessage(Message msg) {

                Toast.makeText(getApplicationContext(),""+(counter+=1),Toast.LENGTH_SHORT).show();

            }

        };

        @Override

        public void run() {

            handler.sendEmptyMessage(0);

        }

    },0,1000);



    return START_STICKY;

}

`


和我的按钮动作:-


public void btnStart(View view){


    startService(new Intent(MainActivity.this,MyService.class));


}

public void btnStop(View view){


   stopService(new Intent(MainActivity.this,MyService.class));

}

我找到了答案..!答案是必须在 onDestroy 方法中取消 timer 和 timerTask


冉冉说
浏览 234回答 2
2回答

开心每一天1111

以下是如何停止服务的简化描述:stopSelf()用于始终停止当前服务。stopSelf(int startId)也用于停止当前服务,但前提是 startId 是上次启动服务时指定的 ID。stopService(Intent service)是用来停止服务的,但是从外部服务被停止。访问此链接了解更多详情请更换return START_STICKY;经过return START_NOT_STICKY;区别:START_STICKY系统会在它被杀死后尝试重新创建你的服务START_NOT_STICKY系统被杀死后不会尝试重新创建您的服务

拉风的咖菲猫

如果您打算停止您启动的服务,您应该调用 stopService(Intent) 例如:Intent intent = new Intent(MainActivity.this, YourService.class);stopService(intent);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java