0

リアルタイム画像処理のアプリを作っています。そのために、ユーザー インターフェイスを使用せずに画像をキャプチャするサービスを作成しました。今、私はこのサービスを何度も開始して、サービスが開始されるたびに画像を取得し、処理してから、再び開始するようにしたいと考えています....最後にタイマーを開始することでこれを行っています次のように、サービス内のプロセスのプロセスを開始し、onFinish()そのタイマーのメソッドでサービスを再起動します。

new CountDownTimer(3000,1000){

    public void onTick(long millisUntilFinished) { }

    public void onFinish() {
        mCamera.release();
        Intent intent = new Intent("com.example.helpingproject.CameraService");
        startService(intent);
        Log.d("Tag1222", "timer finished");
    }
}.start();

誰でもこれで私を助けてもらえますか? ログに「timer finished」が表示されますが、サービスは再起動しません。

4

2 に答える 2

1

サービスにスレッドを作成し、次のように while ループを配置できます。

new Thread(new Runnable(){
    public void run() {
    // TODO Auto-generated method stub
    while(true)
    {
       Thread.sleep(60000) 
       //REST OF CODE HERE//
    }

                    }
}).start();

しかし、これは概して簡単な修正であり、常にスリープ状態になるスレッドを作成することは、モバイル デバイスにとって適切な解決策ではありません。

代わりにAlarmManager の使用を検討してください。定期的なイベントを非常にうまく処理し、同様のシナリオ向けに特別に設計されています。

于 2013-06-07T14:57:53.733 に答える
0

バックグラウンドで実行されているサービスを使用してから、画像を操作するたびにスレッドを開始します。

于 2013-06-07T15:03:58.627 に答える