在一个activity或者fragment中新建一个线程,activity销毁后

在一个activity或者fragment中新建一个线程,activity销毁后,新建的线程也会销毁吗


慕沐林林
浏览 965回答 4
4回答

慕哥9229398

不会。线程何时销毁?进程销毁的时候,它才会销毁。所以这个问题就变成——进程何时销毁。进程何时销毁?为了节省下次启动的时间,Android会尽可能的将进程驻留于内存中——按HOME键、返回键都不会销毁进程,只有在系统需要回收内存的时候才销毁进程。用户的以下操作会造成进程被销毁:将应用从“最近应用”列表移除到“设置”里停止该应用程序员如何让线程随Activity销毁一个可行的方案是:在线程的run方法里处理InterruptedException异常在Activity的onStop()函数里interrupt线程代码如下:public class MainActivity extends AppCompatActivity {    private static final String TAG = "MainActivity";    private Thread thread;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        this.thread = new Thread() {            @Override            public void run() {                while (true) {                    try {                        TimeUnit.SECONDS.sleep(1);                    } catch (InterruptedException e) {                        // 跳出循环,线程会完成运行                        break;                    }                    Log.d(TAG, "run: t " + System.currentTimeMillis());                }            }        };        this.thread.start();    }    @Override    protected void onStop() {        super.onStop();        if (this.thread != null) {            this.thread.interrupt();        }    }}

慕村9548890

在activity中开启的线程不会随着activity的销毁而销毁。

牛魔王的故事

不会销毁,只有在线程里面的内容执行完成才可以。

婷婷同学_

activity被finish()掉后,只是销毁了主线程,子线程没有被销毁
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java