2012-03-23 6 views
1

私はサービスとして実行このスレッドを持っている:アンドロイドはまだ実行中の私のアプリケーションですか?

public void run() { 
     try { 
      while(true) { 
       Thread.sleep(timeInterval); 
       results = sendGetMessage(); 
       b.putString("results", results); 
       receiver.send(2, b); 
      } 
     } catch (InterruptedException e) { 
      results = e.toString(); 
     } 
    this.stop(); 
    } 

私は自分のアプリケーションがまだ永遠しばらく(トゥーレ)を交換するために私が書いた(実行されているかどうかをチェックします簡単な関数を書きたいです)。 のようなもの:while(isMyAppRunning)。 私の問題は、今でも私がアプリケーションを閉じているときに、サービスが実行中に続ける.. 誰かが親切で私にコードの例を教えてくれますか?

+0

PSあなたは 'stop()'と呼ぶべきではありません。 –

+0

なぜですか?どのように私はサービスを停止する必要がありますか? –

+0

これは 'Thread.stop()'ですよね?ただそれを削除します。スレッドは 'run()'が終了すると停止します。 'stop()'は、Java 1.1と同様に廃止されたスレッドを強制的に停止します。 –

答えて

0

これは逆です。このThreadサブクラスにブール値フラグrunningを作成します。 trueとして起動し、に設定するshutdown()メソッドを公開します。 ActivityonPause()メソッドからこのメソッドを呼び出します。

0

サービスが不要になったときにサービスを停止するには、context.stopService(Intent service);を使用します。 onDestroy()メソッドでスレッドを停止するためのすべての維持管理を実行できます。

booleanもあります。アプリケーションが存在するときにfalseに設定することもできますが、最初の解決法を自分で好むでしょう。

+0

アプリケーションが動作している限り、私のサービスが必要です。 あなたが言ったように私は、アプリケーションが存在するかどうか、私はちょうどそれを行う方法がわからないブール値を作成したいと思う.. :) –

+0

あなたは静的なブール値を持つことができます)、それをfalseに設定します。 – Joru

+0

私はアプリケーションクラスを拡張するクラスを持っている場合は、アプリケーションを実行するたびに最初にロードされますか? –

関連する問題