返された値は、実行後のメソッドでのみ使用できますか?
doInBackgroundメソッドを呼び出すと、Webページのソースコード(文字列)を取得します。ソースコード内の情報を分類しているので、そのソースコードをメインアクティビティに戻したいと思います。しかし、私はそれができないと思っています。
実行後から返却してもらえますか?
返された値は、実行後のメソッドでのみ使用できますか?
doInBackgroundメソッドを呼び出すと、Webページのソースコード(文字列)を取得します。ソースコード内の情報を分類しているので、そのソースコードをメインアクティビティに戻したいと思います。しかし、私はそれができないと思っています。
実行後から返却してもらえますか?
このonPostExecute
メソッドでは、アクティビティのメンバー変数に割り当てるか、引数として他のメソッドを呼び出すことができます。
コメントごとに更新: declaredのサブクラスをAsyncTask
別のファイルで宣言することはできますが、囲んでいるアクティビティのメンバー変数を直接操作することはできません。ただし、インターフェイスを定義して、アクティビティと他の場所で定義されたものを結合し、アクティビティへの参照をコンストラクターAsyncTask
のに渡すことができます。AsyncTask
タスクが完了すると、AsyncTaskの変数が削除されます。
ただし、実行クラスのクラス変数は次の場所から設定できますonPostExecute
。
@Override
protected void onPostExecute(Integer result) {
integerListInExecutingClass = result;
super.onPostExecute(result);
}
ただし、このメソッドは、実行中のクラス内でAsyncTaskをプライベートクラスとして宣言した場合にのみ機能します。