后台线程即使在应用程序因未处理的异常而崩溃时也会继续运行

时间:2017-09-08 09:04:21

标签: java android multithreading

我一直在开发有多项活动和服务的应用程序。

在我的活动中,我已经开始了一个主题,在后台为我做了一些重要的工作。

以下是线程的代码

OnCreate()
{
    Runnable runnable = new MyRunnableThread();
    MyThread= new Thread(runnable);
    MyThread.start();
}

private class MyRunnableThread implements Runnable {
    @Override
    public void run() {
        while (!Thread.currentThread().isInterrupted()) {
            try {
              //  Doing some work here ..
                Thread.sleep(2000); // Pause of 2 Second
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
            } catch (Exception e) {
                FirebaseCrash.report(e);
            }
        }
    }
}

现在这就是我的线程正在运行的方式..

现在我使用以下代码停止此线程

MyThread.Intrrupt();

这将阻止我的线程执行..

在我的场景中,有时当应用程序崩溃时,这些线程会继续运行,从而导致我的应用程序逻辑出错。

我想在应用程序崩溃的情况下立即停止这些线程。

这是停止线程执行并停止的正确方法吗?

我也在服务类中使用线程,并且在混淆状态下,可能有多个同一实例的线程一次在app中运行,因为之前没有正确停止!!!

请指导!!!

0 个答案:

没有答案