2016-04-12 10 views
0

通知のボタンからサービスを開始しようとしています。私は同じボタンを使用して開始し、停止します。停止は機能しますが、私が再び起動すると、コードはstartServiceの部分を実行しますが、サービスを開始せず、例外も表示されません。助けてください。内部クラスのブロードキャストレシーバー内でのカントスタートサービス

public static class switchButtonListener extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (startStopCount == 0) { 
      new OuterClassService().timer.cancel(); 
      new OuterClassService.ScreenshotService().stopSelf(); 
      startStopCount = 1; 
     } else { 
      context.startService(new Intent(context, OuterClassService.ScreenshotService.class)); 
      startStopCount = 0; 
     } 
    } 

初めて通知が、ここにはコードがありませんが、それが動作し、サービスが停止し、押されているが、私は再び開始するために同じボタンを使用する場合、それはサービス

+0

ボタンコードを投稿してください。 – Leonardo

答えて

1

を開始しません。サービスを開始または停止します。 OuterClassService.ScreenshotService()Serviceの場合は、そのクラスのインスタンスを自分で作成して動作させることはできません。

サービスを開始するには、のstartService()に電話し、サービスを識別するIntentを渡します。

サービスの外からサービスを停止するには、ContextstopService()に電話し、サービスを識別するIntentを渡します。実行中のサービスのインスタンスからサービスを停止するには、stopSelf()を呼び出します。

+0

ごめんなさい...あなたは正しいです。私はたぶん 'Timer'を停止し、' Service'が停止したと考えました。 – boo

関連する問題