1

私は、1分ごとに実行される1つのスレッドを持つAndroidアプリケーションを持っています。私の問題は、1 つのボタンをクリックすると、アプリをリセットする必要があることです。つまり、新しいアプリになります。そのボタンをクリックすると、すべてのデータベースと共有設定がクリアされます。しかし、スレッドは再び開始されます。

今、このように使用しています

if (killthread.isAlive()) {

           killthread.interrupt();                  


            }else {

              // Here what'll i do, I mean how to kill that thread, which in sleep mode.

}

ありがとうヴィシュヌ

4

2 に答える 2

2

返信ありがとうございます。ここでそのボタンをクリックすると、else 部分に移動しますが、1 分後にスレッドが開始されます。それを段階的に停止するにはどうすればよいですか?

それはスレッド自体と関係があります。私の賭けは、割り込みを無視するようにコーディングしたことです。


OK、これがあなたのコメントのコードです。

public void run() { 
    while (true) { 
        try { 
            Thread.sleep(60000); 
        } catch (InterruptedException e) { 
            // TODO Auto-generated catch block 
        }
    } 
}

これが行うことは、スレッドが中断されたときに発生する例外をキャッチして静かに無視することです...そしてそのまま続行します。

割り込みで停止させたい場合は、これ ... または同等のものにする必要があります。

public void run() { 
    while (true) { 
        try { 
            Thread.sleep(60000); 
        } catch (InterruptedException e) { 
            return; 
        }
    } 
}
于 2013-01-17T06:15:07.963 に答える
1

スレッドが生きていない場合は、

1) 死んでいる/終わった. あなたは何もすることができません/何もする必要はありません。

2) 新しく作成された/まだ開始されていない。つまり、 Thread.start() はまだ呼び出されていません。この場合、Thread.interrupt() は効果がありません。あなたができる唯一のことは、いくつかのカスタムロジックです-スレッドを開始するコードに、もう必要ないことを通知します

于 2013-01-17T06:01:20.727 に答える