我正试图阻止碎片中的线程。我有一个片段,在片段中我有一个线程,每隔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();
}