2016-06-23 2 views
0

GPSの速度をプログラムのバックグラウンドでキャプチャしたいと思っています。私は速度をキャプチャするコードを持っていますが、それがプログラムで実行されている最初のものでなければ動作しません。後で通知をポップアップするには、これを放送意図またはインテントサービスとしてコード化する必要がありますか?アプリのバックグラウンドでの速度のキャプチャ

SpeedManagerService.java:

public class SpeedManagerService extends Service { 

private static final String TAG = "SpeedCheckerService"; 

private boolean isRunning = false; 

@Override 
public void onCreate() { 
    Log.i(TAG, "Service onCreate"); 

    isRunning = true; 
} 

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 

    Log.i(TAG, "Service onStartCommand"); 

    //Creating new thread for my service 

    new Thread(new Runnable() { 
     @Override 
     public void run() { 

      if (isRunning) { 
       Log.i(TAG, "Service running"); 
      } 
     } 

    }).start(); 

    return Service.START_STICKY; 
} 

@Nullable 
@Override 
public IBinder onBind(Intent intent) { 
    return null; 
} 
} 

そして私は(スプラッシュページが始まる直前、のonCreateメソッドで実行する)スプラッシュページの下に、その特定のページのためのテントを追加しました:

public class SplashActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash); 

Intent intent = new Intent(this, Checker.class); 
    startService(intent); 

ご協力いただければ幸いです。ありがとう。

+0

スピードキャプチャやアプリケーション構成の表現の一部を掲載することをお勧めします。私たちはより良い助けになることができます。 – Thomas

答えて

1

あなたの説明から、あなたはサービスですべての作業を行うことができるようです。受信データ処理を管理するための別のスレッドを実行したり、実行時に受信者を登録および登録解除したり、ユーザーに通知したりすることができます。私の経験から、データを受け取り、それを演算子のチェーンに渡し(速度値でフィルターする)、最後に処理する、反作用方法(rx)で値のストリームを処理することは良い考えです。 IntentServiceは、1度に長時間のジョブを実行するのに適しています。

+0

ありがとう、両方の答えが助けます。うまくいけば、私はこれをソートして開始することができます。ガイダンスをよろしく! – Angel

+0

これを正しく理解していれば、IntentServiceを添付したクラスを追加することができます。そのため、アプリケーションが開始されると、サービスはバックグラウンドで開始され、速度を読み取ってキャプチャする必要があるコードを読み取ります。それと一緒に通知を送信しますか?私はコードのいくつかを投稿します..誰かが私にサービスを手伝ってもらえれば、私も大いに感謝します。 – Angel

+0

インテントサービスは一度だけ実行します(ドキュメント参照)。通常のサービスを使います。その中での処理 –

0

サービスを実装し、その中に条件を設定する必要があります。まずはGuideをご覧ください。ロケーションリスナーでgetSpeed()関数を呼び出すことができます。

関連する問題