如何在创建的活动上再次重新启动线程

时间:2014-09-12 07:26:42

标签: android multithreading

我正在做的是在片段内点击一个按钮后开始一个线程然后按下我的Activity和Fragment得到Destroyed但是当再次调用该活动和片段时我想再次从其先前状态开始我的线程。

我知道我没有提供太多信息,但我也很困惑我所要求的。

非常友善地帮助我。

我在这里知道

thread = new Thread(new Runnable() {
    @Override
    public void run() {
        while (runThread) {
            try {
                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        updateProgress();
                    }
                });
                Thread.sleep(200);
            } 
            catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                break;
            }
        }
    }
});
thread.start();

这是我的onDestroy

@Override
public void onDestroyView() {
    // TODO Auto-generated method stub
    super.onDestroyView();
    try {
        if (thread != null) {
            runThread = false;
        } else {

        }
    } 
    catch (Exception e) {
    }
}

1 个答案:

答案 0 :(得分:1)

似乎线程在完成之前不会停止。

thread = new Thread(new Runnable() {
    @Override
    public void run() {
        while (runThread) {
            try {
                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                       //+ Hear
                        if(runStat){                           
                           updateProgress();
                        }
                    }
                });
                Thread.sleep(200);
            } 
            catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                break;
            }
        }
    }
});


@Override
public void onDestroyView() {
    // TODO Auto-generated method stub
    super.onDestroyView();
    try {
        if (thread != null) {
            runThread = false;
            runStat=false;
        } else {

        }
    } 
    catch (Exception e) {
    }
}

@Override
public void onStop() {
    // TODO Auto-generated method stub
    super.onStop();  
    runStat=false;    
}

 @Override  
 protected void onStart() {  
    // TODO Auto-generated method stub  
    super.onStart();  
    runStat=true;  
 }