2012-01-25 13 views
2

私はサービス内でいくつかのint myIntを持っています。myInt = 1サービス自体を停止したいと思っています。サービスは自動的に停止するはずです。サービス自体を停止するには?

@Override 
    public void onCreate() { 
      super.onCreate(); 
       if(myInt==1){ 
       // need code for stopping service here 
       } 
     } 
+0

あなたがurアクティビティからサービスを開始するコードを投稿する必要があると思います。@Adam –

+0

これを試していなければ、onStart()またはonStartCommand()メソッドでstopSelfを試してみましたか? – Nitin

答えて

1

UPDATE

どうやら我々は、サービスのライフサイクルの性質のためにサービスを停止することはできません。 OnStartCommandでもあなたの状態を確認できたら、そこにstopself()を呼び出せますか?

UPDATE 2サンプルコードについて

:あなたはこの記事のように別々のスレッド上stopSelf()を実行してみることができます。how can i stop my RECEIVE_BOOT_COMPLETED service

+0

はい、これはサービスの作成です。私はstopSelf()を自分のコードに入れようとしましたが、それはうまくいきませんでした。 – Adam

+0

ありがとうございます。 @Adam –

+0

私は私の条件をOnStartCommandに追加しようとしました。条件が受け入れられた場合、私はstopSelf()を呼び出しようとしましたが、それでも動作しません。 – Adam

0

使用 "this.stopSelf()":

@Override 
public void onCreate() { 
     super.onCreate(); 
      if(myInt==1){ 
      this.stopSelf(); 
      } 
    } 

サービスがまだSTICKY(START_STICKY)として起動されていることによってAND/ORによってバインドされていない場合、これは機能します。

関連する問題