-2

サーバーから変数を読み取って 5 秒ごとに評価し、別の変数を送信しようとしていますが、このコードを変換してそれを作成することはできません。タイマーで試してみましたが、それは機能せず、そのように使用するのに十分なほど SoTimeout を理解していません [.] 受け取った変数を何らかの条件でのみ評価したいのです。[私は] この httppost で非常に新しいです

private void EnviarDatos(int var){


    HttpClient httpclient = new DefaultHttpClient();   
    HttpPost httppost = new HttpPost("http://www.******.com/leo/app2.php");

    try {               
    List<NameValuePair> postValues = new ArrayList<NameValuePair>(2);         
    postValues.add(new BasicNameValuePair("a", Integer . toString ( var )));                 
    httppost.setEntity(new UrlEncodedFormEntity(postValues));          
    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();
    InputStream is = entity.getContent();    
    String res= StreamToString(is);
    int entero = Integer.parseInt(res);


    Message sms = new Message();
    sms.obj = res;
    bridge.sendMessage(sms);
}catch (IOException e) {         
    //TODO Auto-generated catch block     
 } 
}


public String StreamToString(InputStream is) {

    BufferedReader reader = 
        new BufferedReader(new InputStreamReader(is));
   StringBuilder sb = new StringBuilder();
 String line = null;
 try {
 while ((line = reader.readLine()) != null) {
      sb.append(line + "\n");
 }
 } catch (IOException e) {
     e.printStackTrace();
 } finally {
    try {
    is.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
 }
return sb.toString();
}



private Handler bridge = new Handler() {
 @Override

 Toast.makeText(getApplicationContext(), (String)msg.obj, 
   Toast.LENGTH_LONG).show();
 }
};
4

1 に答える 1

0

setSoTimeout は、サーバーからの応答を待機する時間を指定するために使用されるため、10 秒待機してからプロセスを続行できます。このタスク用のサービスを作成することをお勧めします。これは非常に完全なチュートリアルです: http://www.vogella.com/articles/AndroidServices/article.html

これを試して:

mTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
       // What you want to do goes here
     }
}, 0, REFRESH_TIME);

あなたの問題にはいくつかの解決策があります: バックグラウンドでサービスを常に実行する方法は?

Android は X 秒ごとにサービスでスレッドを実行します

Android で Alarm Manager を使用してサービスを開始するには?

于 2013-09-06T16:26:51.320 に答える