私はAndroidに比較的慣れていません。AsyncTask を使用しようとしていますが、スレッドが実行された後、アプリを強制的に閉じる必要があります。非同期スレッド内で、Android センサーからのデータを保存するサーバー側で php を実行します。どんな助けでも大歓迎です。ありがとう
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.....
final FuncionsActivity functions = new FuncionsActivity();
if(something)
functions.execute(nameValuePairs);
.....
}
private class FuncionsActivity extends
AsyncTask<ArrayList<NameValuePair>, Integer, Integer > {
@Override
protected Integer doInBackground(ArrayList<NameValuePair>... data) {
// 1) Connect via HTTP. 2) Encode data. 3) Send data.
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost("http://.../saveCoordinates.php");
//HttpPost httppost = new
httppost.setEntity(new UrlEncodedFormEntity(data[0]));
HttpResponse response = httpclient.execute(httppost);
Log.i("postData", response.getStatusLine().toString());
this.onPostExecute(null);
//Could do something better with response.
}
catch(Exception e)
{
Log.e("log_tag", "Error1: " + e.toString());
}
return 0;
}
protected void onProgressUpdate(Integer... item){
Log.d("TestP", item[0] + " item has been processed");
}
protected void onPostExecute(Integer result){
Log.d("TestP", "AsyncTask returned : " + result);
}
}
@Override
protected void onDestroy() {
super.onDestroy(); // Move to bottom
//System.runFinalizersOnExit(true);
}
}