-1
async tackを使用してアクティビティに値を表示することはできません。非同期タスクのためのコードは次のとおりです。 アクティビティにasynctask値を表示する方法
new BackgroundGetSignal(this).execute();
しかし、アプリケーションがクラッシュしている:
private class BackgroundGetSignal extends AsyncTask<String, Void, Void> {
private TextView name;
//private TextView latitudeField;
//private TextView longitudeField;
//private TextView placeName;
Double lat;
Double longit;
String addre;
MyService myService;
private Intent i;
private Context context;
public BackgroundGetSignal(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(String[] o) {
myService = new MyService();
if (myService.canGetLocation()) {
lat = myService.getLatitude();
longit = myService.getLongitude();
addre = myService.getAddress();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
latitudeField = (TextView) findViewById(R.id.txtLatitude);
longitudeField = (TextView) findViewById(R.id.txtLongitude);
placeName = (TextView) findViewById(R.id.txtLocation);
latitudeField.setText(lat.toString());
longitudeField.setText(longit.toString());
placeName.setText(addre);
}
}
これは私がそれを呼ばれる方法でした。誰かが私が間違ったことを教えてください。
あなたのisuueのエラーログを入れてください。 –
投稿されたコードが正しくありません:TextViewsはコメントアウトされています。 AsyncTaskでうまく動作することをヒントにするには、** callback interfaces **を使用して、計算された値を 'onPostExecuted'に渡し、AsyncTaskを実行するクラスにそれらの値を渡して、渡された値を取得します。 –
例外はありますか? – EKN