停止碎片中的线程?

时间:2014-12-04 17:33:42

标签: android android-fragments

我正试图阻止碎片中的线程。我有一个片段,在片段中我有一个线程,每隔1秒检查一个方法。

我想,当用户按下设备按钮时,此线程停止。要做到这一点,我正在尝试使用片段的onStop()onPause()onDestroyView()以及onDetach(),但不起作用。为了工作,我需要完全关闭我的应用程序。

我确实阅读了片段关于生命周期的文档,但仍然无法实现它。

我该怎么做?

        //thread
        Thread checkProgress = new Thread(){
                                        public void run(){
                                            while(!cpb.isDone()){
                                                if(cpb.isDone() && !click){
                                                    getActivity().runOnUiThread(new Runnable() {                                                        
                                                        @Override
                                                        public void run() {                                                             
                                                            showDialog(1);                                              
                                                        }
                                                    }); 
                                                    isInterrupted();
                                                }
                                            }
                                        }                                           
                                    };
                                    checkProgress.start();



        @Override
        public void onDetach() {
            super.onDetach();
            Log.i("ON DETACH: ", "execute");
            checkProgress.isInterrupted();
        }

        @Override
        public void onDestroyView() {
            super.onDestroyView();
            Log.i("ON DESTROY VIEW: ", "execute");
            checkProgress.isInterrupted();
        }

        @Override
        public void onPause() {         
            super.onPause();
            Log.i("ON PAUSE: ", "execute");
            checkProgress.isInterrupted();
        }

        @Override
        public void onStop() {
            super.onStop();
            Log.i("ON STOP: ", "execute");
            checkProgress.isInterrupted();

        }

0 个答案:

没有答案