• ベストアンサー

TimeOutの処理

Androidで定期的にGPSを取得するというプログラムを作成しています。 このGPSなのですが、電波状況が悪いと長時間取得しにいったままになりますし、取得出来ない場合、そのまま終わってしまいます。 できればGPSを取得しに行って、10秒取得が出来なかったらTimeOutとしてエラーの処理を実行したいのですが、どのように実装すればいいのでしょうか?Webを探しましたが、参考になりそうなものが見つけられませんでした。

  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.1

そうですね、別にスレッドを走らせ、10秒経過したところでLocationManagerをremoveUpdatesしてからスレッドを終了する、という感じでしょうか。LocationManagerそのものではできないと思いますので……。

rinet8223
質問者

お礼

解答ありがとうございます。 戴いたアドバイス通りに、TimeCount用の別スレッドを走らせて希望の処理を実現できました。 ありがとうございました。 同じ問題に当たった方の参考のためにコードを以下に残します。 private Timer locationTimer; private LocationManager mLocationManager; /** * GPS取得のTimeOutを処理するスレッド */ public void timeOutCount() {   mTimer = new Timer(true);   mTimer.schedule( new TimerTask(){     @Overrid     public void run() {       andler.post( new Runnable() {         public void run() {           //onLocationChangedをStopする(GPS取得中断)           mLocationManager.removeUpdates(listener);           //以下にTimeOut時に行いたい処理を書く           //スレッドを止める           mTimer.cancel();         }       });     }   },30000,10000); } //30秒でTimeOutとする //delayミリ秒あとにperiodミリ秒間隔でタスク実行 //ただしTimeOut処理のスレッドなので1回しか実行しない //periodを0秒にすると、エラーになるので便宜上10秒に設定 onLocationChangedが実行された場合、TimeOutのスレッドを停止する。 onLocationChangedの冒頭でmTimer.cancel();を実行。

関連するQ&A

  • Androidの並列処理(定期実行)

    http://d.hatena.ne.jp/shuji_w6e/20090701/1246459813 上記のURLを参考に、定期的にGPS情報を取得しDB登録するSampleプログラムを作成しました。 public void run() {    textView.setText(new Date().toString()); } } のrun()の中身をGPS取得する処理に変更しただけで、そこまでは上手くいきました。 このSampleは単一のActivityクラスだけで構成されていますが、この「定期的にGPS情報を取得する」という処理を別クラスにしたいと考えました。 そこでActivityを継承した、「GetGpsService」というクラスを作成し、そのクラスをmainのActivityから呼び出せばいいと思ったのですが、上手くいきません。 単純にmainのActivityで、GetGpsServiceのインスタンスをnewすれば、GetGpsServiceのonCreateが実行されて処理が実行されると思っていたのですが、newしてもクラス内のどこのBreakPointにも止まりませんでした。根本的な考え方が間違っているのでしょうが、別クラスにしたGPS情報の定期取得処理をmainのActivityから呼び出すには、どのようにしたら良いのでしょうか? 画面変遷がなくても、intent等を使う必要があるのでしょうか?

    • ベストアンサー
    • Java
  • 504-Gateway Timeoutについて

    ASP.net(C#)で開発をしております。 IIS7.5です。 重たい処理をさせたときに、「504 - Gateway Timeout 応答ヘッダの読み取りタイムアウト 」 というエラー画面が表示されます。 Web.configなどでtimeoutの値を大きくしたり、 IISの設定で、「アイドル状態のタイムアウト(分)」を大きくしたりして 試したのですが、エラーが解消されません。 解消方法をご存知の方、ご教授願います。

  • Android-Login後にGPS取得する

    Androidのアプリを開発しています。 起動時にログイン処理を行い、それが成功したらGPSを定期的に取得するサービスの起動を行いたいと思っていますが、上手くいきません。 1.ログイン中は「ログイン中です」、完了したら「ログイン完了」と表示したいのですが   onCreateのは画面の表示前なので、これらの処理をするとしたらonCreateで、   ログインの処理を行うThreadを起動する。という考え方であってますでしょうか? 2.またログインをThreadで起動したとして、それが成功したらGps取得を行う処理実行。     という流れを考えていますが、定期的なGps取得のサービスはonCreateで実行しています。   そのため、「Loginが成功したら、Gps取得サービスを開始」という事ができません。   どのような作りにすれば、できますでしょうか?

    • ベストアンサー
    • Java
  • URLConnection Timeoutエラー

    あるWebサイトのあるコンテンツ(Flash)をJavaで取得しています。 Javaから、  URL url = new URL( "http://xxx/sample.swf" ); URLConnection conn = url.openConnection(); conn.connect(); ←ここで1分後に"connect timeout"になります。 ・同じマシンのブラウザから"http://xxx/sample.swf"は表示できます。(レスポンス早い) ・タイムアウト値は1分に設定しています。(30秒でも2分でも30分でも×) ・conn.getInputStreamでも"connect timeout"になります。 ・url.openStreamでも"connect timeout"になります。 ・このサーバのFlash以外の、別のサーバのFlashは問題なく取得できます。 何か原因は考えられますでしょうか? サーバ側でHTTPとIPの制限はしていません。 (ブラウザで見れるので↑の設定はあってると思うのですが・・。)

    • ベストアンサー
    • Java
  • IIS5.1でCGI Timeoutになる原因を教えてください。

    Perlでプログラムを書きIIS 5.1で実行すると約5分程度で下記のようなメッセージでCGI Timeoutになってしまいます。 下記のURLの指示に従いIISのCGIスクリプトタイムアウト値は300秒から1800秒に延長しています(IIS5.1なのでGUIは少し違いますが)。 http://www.microsoft.com/japan/technet/community/columns/insider/iisi0302.mspx 原因を教えてください。 CGI Timeout The specified CGI application exceeded the allowed time for processing. The server has deleted the process. よろしくお願いします。

    • ベストアンサー
    • CGI
  • 処理時間により、その後の処理の分岐をしたいのですが

    PHPスクリプト内にて、ある処理が例えば30秒以上かかった場合は、その瞬間にexit()やエラーをecho()というような 実装をしたいと思うのですが、どのように書けばいいのか思いつきません。 function hoge() { /* 処理内容 */ //α return $foo; } $foo = hoge(); //β があった場合、どこに、どのように書けばいいのでしょうか? 簡単に書けば、 $time = time(); if(time() - $time >30) { echo "時間超過"; } のような時間的処理分岐を入れたいと思うのですが。 αやβの前に$time = time();を置いたとしても、αの"処理内容"やβの関数実行の後にif(){}節を入れることになるので、 逐次処理のせいで、処理が15分かかった後とかにエラー出力とかになってしまいます。 自分は、何かをスクリプト中で実行し、その処理が30秒を超えた場合はエラーを出したいと考えております。 上記のような分岐方法でなくてもいいのですが、どのように書けばいいのかアドバイス頂けないでしょうか?

    • ベストアンサー
    • PHP
  • 処理時間&CSVファイル出力について

    プログラムで処理1~3までの流れがある場合に、処理1~処理3それぞれの処理時間(秒)を求めたいです。 <例> 処理1 処理2 処理3 処理1の前の現在時刻を求めておき、処理2に入ったときの現在時刻から処理1の前の現在時刻を引けば処理時間(秒)求めることができると思うのですが、プログラムでどのように実装すればよいかわかりません。 現在時刻を求めるプログラムは、 Public Function GetTimeLong() As Long '処理時間 Dim stTime As SYSTEMTIME '初期化 GetTimeLong = 0 InitSystemTime stTime '取得して変換 If GetTime(stTime) = True Then GetTimeLong = stTime.wMilliseconds ' ミリ秒 GetTimeLong = GetTimeLong + stTime.wSecond * 1000& ' 秒 GetTimeLong = GetTimeLong + stTime.wMinute * 1000& * 60& '分 End If End Function で求めることができると思います。 また、処理1~3までの得られた処理時間を、 処理1 処理2 処理3 ○秒  ○秒  ○秒 とCSV形式ファイルで保存したい場合、どのようなプログラムを書けば実装できるのでしょうか? どなたかご教授をして頂ければ助かります。 よろしくお願い致します。

  • CGI timeoutって? IISでのcgi設定

    すみません質問させてください。 今、XPでIISをインストールしてCGIが動くようにしてるんですが うまくいきません。 http://localhost/hello.cgi というurlで実行できると思うんですが、 いつまでも読み込んでるだけで、実行されない感じです。 CGI timeoutといわれます。 実行するCGIはHELLOと表示する単純なものです。 また、.cgiファイルは実行プログラムをC:\perl\bin\perl.exeに 指定しています。 IISでは、規定のWEBサイトのプロパティ>ホームディレクトリの 「構成」で.cgiの実行ファイルをC:\perl\bin\perl.exeに指定しています。 とりあえずやるだけやったと思ってるんですが、うまくいかないのはどうしてでしょう。 よろしくお願いします。

    • 締切済み
    • CGI
  • スワイプ画面でのonclick処理について

    先日、以下のサイトを参考にスワイプ画面を作成しましたが スワイプ画面でボタンをクリックする処理が実装できませんでした。 http://web-dou.com/android/swipe.html ページをA⇔B⇔Cとスワイプで遷移することができ、 Aの画面でAのレイアウトに配置したボタンを押すと ある処理を行うというものです。 以下のコードを3つの上記のスワイプを管理するソースコードに記述したところ、 「NullPointerException」というエラーが発生しました。 m_button = (Button)findViewById(R.id.button01); m_button.setOnClickListener(this); 以前した質問(http://okwave.jp/qa/q8826506.html)で回答していただいた通り、 参考にさせていただいた方法ではOnclick処理は実装できないのでしょうか? もし実装できないのであればスワイプ画面でOnclick処理を行う方法について 教えていただければと思います。 回答よろしくお願いします。

  • PHPで画像処理

    あるWebサイトにある画像を定期的に取得して,PHPで画像を処理をしてサーバーに保存するプログラムを作ろうとしています. 処理したい画像の形式はGIFです.特にGIFにこだわりはないので違うフォーマットに変換してから処理してもいいとは思っています. 画像処理と言っても,特定のRGB値のピクセルを画像中から探して,その座標を取得するという単純なものなのです. そんなに難しくなさそうなのですがどうやればいいかわからないのでどなたか教えていただけませんか? GDやImageMagickが使えるのかと思って動かしてみましたが,結局使えそうな関数がみつからず頓挫しています. どなたかよろしくお願いします.

    • 締切済み
    • PHP