2016-07-06 6 views
0

私は新しいデータでサービスを再開したいのですが、サービス<>サービスとの間で複雑な通信をせずに、サービス中のすべてのオブジェクトを解放することができます。サービス終了時間を計算しますか?

私は、これを試してみましたすべての作品:

if(isMyServiceRunning(PlayerService.class)) 
      { 
       getActivity().stopService(intenx); 
       positionTemp--; 
       final Handler handler = new Handler(); 
       handler.postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         getActivity().startService(intenx); 
         positionTemp++; 
        } 
       }, 500); 

      } 
      else{ 
       getActivity().startService(intenx); 
      } 
     } 
    }); 

しかし、私は必要がある場合、私は別のデバイスで閉店時間を気にするのか分からないのですか?サービスが500msより長く閉鎖される可能性はありますか?モトローラはサービスを終了するのに300msかかるので、問題なく再実行できます。

アドバイスはありますか?サービスとのコミュニケーションは本当に簡単ではありません。音楽プレーヤーはほぼ15種類のコントロールがあります。私は最も簡単な方法は現在のサービスを停止し、新しいエントリ変数で再起動することだと思います。

答えて

0

これは不要と思われ、ユーザーの操作に500msの遅れを追加します。サービスは、停止したり再開したりすることなく、複数のインテントを受け入れることができます。新しい意図をそれぞれonStartCommand()に入れてください。フラグメントとサービスの間に複雑な通信は必要ありません。フラグメントは、すべての要求をサービスに転送し、サービスがそのことを行うようにするだけです。より良いUIのためには、サービスにバインドする必要がありますので、サービスの状態に基づいてUIを更新することができます。

関連する問題