2

同じアプリケーションの前回の実行時に作成されたスレッドを停止するだけです。これがシナリオです。バックグラウンドでスレッドを使用して通知のためにデータベースからデータを取得していますが、そのアプリケーションを再度起動すると、スレッドの数が増えています。私はこれを止める必要があります。アプリケーションのメインクラスの onCreate() メソッドで、バックグラウンドで実行されているスレッドを停止する方がよいと思います。でも、やるのはやっぱ。できるだけ早くこの件で私を助けてください。

ありがとう、よろしく、シェハン。

4

2 に答える 2

0

実行中のスレッド onDestroy() のアクティビティを停止できます。

以下を見つけてください。

 static boolean stopThread=false;
    public myThread implements Ruunable{
    public void run(){
    while(true){
    //your logic
    if(stopThread)
    break;
    }
    }


    @Override
        protected void onDestroy() 
        {    

          stopThread=true;
        }    
于 2012-10-18T10:33:29.590 に答える
0

アクティビティ クラスで実行中のスレッドへの静的参照を保持します。スレッド内には、設定できるブール変数、またはスレッドを完了するために呼び出すことができるメソッドが必要です。onCreate()実行中のスレッドがあるかどうかを確認し、実行中の場合は停止するように指示します。コード例を次に示します。

あなたの活動で:

private static Thread myThread;

アクティビティで、スレッドを作成するとき:

if (myThread != null) {
    if (myThread.isAlive()) {
        myThread.running = false; // Tell the thread to stop running now
    }
}
myThread = new Thread(...);
myThread.start();

あなたのスレッドで:

public boolean running = true; // Initator of this thread should set this to false to make the thread complete

public void run() {
    while (running) {
        // do whatever your thread does in a loop
    }
}
于 2012-10-18T08:43:49.647 に答える