タグ付けされた質問 「android-asynctask」

android.os.AsyncTaskに関する質問に使用します

5
Androidの非同期タスクとスレッド
UIでは、いくつかのバックグラウンド作業を実行するために、別のを使用しましたThread。しかし、他の人が示唆したように、私は現在を使用していAsyncTaskます。 a Threadとanの主な違いは何AsyncTaskですか? どのシナリオで、a ThreadまたはAsyncTask?を使用する必要がありますか?

4
AsyncTaskLoaderとAsyncTask
以来Honeycombとv4 Compatibility Libraryそれを使用することが可能ですAsyncTaskLoader。私が理解しているところによると、はAsyncTaskLoader画面の反転などの構成変更を通じて生き残ることができます。 のAsyncTaskLoader代わりに使用することをお勧めしますAsyncTaskか?LoaderManagerあまりにも絵に入りますか? しかし、を正しく使用する方法についての良い例は見つかりませんでしたAsyncTaskLoader。ドキュメントにも例はありません。誰でもいくつかの良い例を提供できますか?

5
AsyncTaskを数回実行する
私のアクティビティでは、AsyncTaskから拡張したクラスと、そのAsyncTaskのインスタンスであるパラメーターを使用しています。私が電話mInstanceOfAT.execute("")するとき、すべては大丈夫です。しかし、AsyncTaskを再度呼び出す更新ボタンを押すと、アプリがクラッシュします(ネットワークジョブが機能しなかった場合)。原因はそれから言う例外が表示されます タスクを実行できません:タスクはすでに実行されています(タスクは一度だけ実行できます) Asyctaskのインスタンスに対してcancel(true)を呼び出してみましたが、どちらも機能しません。これまでの唯一の解決策は、Asyntaskの新しいインスタンスを作成することです。それは正しい方法ですか? ありがとう。

7
Android-AsyncTaskのタイムアウトの設定?
私が持っているAsyncTask、私はそれのダウンロードにウェブサイトからのデータの大きなリストを実行するクラスを。 使用時にエンドユーザーのデータ接続が非常に遅いか、むらがある場合は、一定時間AsyncTask後にタイムアウトを設定します。これに対する私の最初のアプローチはそうです: MyDownloader downloader = new MyDownloader(); downloader.execute(); Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { if ( downloader.getStatus() == AsyncTask.Status.RUNNING ) downloader.cancel(true); } }, 30000 ); を開始した後、まだ実行されている場合、30秒後にAsyncTaskをキャンセルする新しいハンドラが開始されますAsyncTask。 これは良いアプローチですか?それともAsyncTask、この目的により適したものが組み込まれていますか?

4
Android:AsyncTaskのonPreExecute()にパラメーターを渡すにはどうすればよいですか?
AsyncTask内部クラスとして実装したロード操作にを使用します。 ではonPreExecute()、読み込みダイアログを表示し、それをで再び非表示にしonPostExecute()ます。ただし、一部の読み込み操作では、読み込みが非常に早く完了することがわかっているため、読み込みダイアログを表示したくありません。 私はこれに渡すことonPreExecute()ができるブール型パラメーターでこれを示したかったのですが、どういうonPreExecute()わけか何らかの理由でパラメーターを取りません。 明らかな回避策は、おそらくAsyncTaskまたは外部クラスにメンバーフィールドを作成することです。これは、すべての読み込み操作の前に設定する必要がありますが、あまり洗練されていないようです。これを行うより良い方法はありますか?

4
AsyncTaskスレッドが死ぬことはありません
AsyncTaskユーザーがボタンを押したことに応答して、sを使用してデータをフェッチしています。これはうまく機能し、データのフェッチ中にインターフェイスの応答性を維持しますが、Eclipseデバッガーで何が行われているのかを確認したところ、新しいものAsyncTaskが作成されるたびに(多くの場合、一度しか使用できないため) )、新しいスレッドが作成されていましたが、終了されませんでした。 その結果、AsyncTaskそこに座っているだけで多数のスレッドができます。これが実際に問題であるかどうかはわかりませんが、これらの余分なスレッドを取り除きたいと思います。 これらのスレッドを強制終了するにはどうすればよいですか?

9
実行中のAsyncTaskをキャンセルする理想的な方法
を使用して、バックグラウンドスレッドでリモートオーディオファイルの取得とオーディオファイルの再生操作を実行していますAsyncTask。Cancellableプログレスバーは、操作の実行をフェッチする時のために示されています。 AsyncTaskユーザーが操作をキャンセル(決定)したときに実行をキャンセルまたは中止したい。そのような場合に対処するための理想的な方法は何ですか?

11
ホスト「<ここにURLを挿入>」を解決できませんホスト名に関連付けられたアドレスがありません
このチュートリアルに従ってみました: Webからデータを取得する タブレットの最新プラットフォームであるAndroid 3.0に実装しようとしましたが、「ホスト "www.anddev.org"を解決できません。ホスト名に関連付けられたアドレスがありません。」というエラーが表示されます。 ファイルが存在することを証明するためだけに使用したURLをチェックアウトできます。 http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt プライベートクラスを作成し、それをasynctaskで拡張しました。これがコードです: private class Downloader extends AsyncTask&lt;String,Void,String&gt;{ String myString = null; @Override protected String doInBackground(String... arg0) { try{ URL myURL = new URL("http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt"); URLConnection ucon = myURL.openConnection(); InputStream is = ucon.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); ByteArrayBuffer baf = new ByteArrayBuffer(50); int current = …

3
Android AsyncTaskスレッドの制限?
ユーザーがシステムにログインするたびに情報を更新する必要があるアプリケーションを開発しています。電話のデータベースも使用しています。これらすべての操作(更新、dbからのデータの取得など)には、非同期タスクを使用します。これまで、なぜそれらを使用すべきでないのかわかりませんでしたが、最近、いくつかの操作を実行すると、非同期タスクの一部が実行前に停止し、doInBackgroundにジャンプしないことがわかりました。それはあまりにも奇妙で、そのままにしておくことはできなかったので、何が問題かを確認するだけの簡単なアプリケーションをもう1つ開発しました。そして奇妙なことに、非同期タスクの総数が5に達したときにも同じ動作が発生し、6番目のタスクは実行前に停止します。 Androidのアクティビティ/アプリでのasyncTasksの制限はありますか?または、それは単なるバグであり、報告する必要がありますか?誰かが同じ問題を経験し、おそらくそれに対する回避策を見つけましたか? これがコードです: バックグラウンドで機能するこれらのスレッドを5つ作成するだけです。 private class LongAsync extends AsyncTask&lt;String, Void, String&gt; { @Override protected void onPreExecute() { Log.d("TestBug","onPreExecute"); isRunning = true; } @Override protected String doInBackground(String... params) { Log.d("TestBug","doInBackground"); while (isRunning) { } return null; } @Override protected void onPostExecute(String result) { Log.d("TestBug","onPostExecute"); } } そして、このスレッドを作成します。preExecuteに入り、ハングします(doInBackgroundには移動しません)。 private class TestBug extends …

9
Android SDK AsyncTask doInBackgroundが実行されていません(サブクラス)
2012年2月15日の時点では、これがうまく機能しない理由や理由がまだわかりません。ソリューションに最も近いのは、従来のスレッドアプローチを使用することですが、なぜAndroid SDKで機能しない(と思われる)クラスを含めるのでしょうか。 Evenin 'SO! 私はAsyncTaskサブクラスを持っています: // ParseListener had a callback which was called when an item was parsed in a // RSS-xml, but as stated further down it is not used at all right now. private class xmlAsync extends AsyncTask&lt;String, RSSItem, Void&gt; implements ParseListener これは次のように実行されます。 xmlAsync xmlThread = new xmlAsync(); …

4
長時間実行オペレーションのためのAndroid AsyncTask
ここにあるAsyncTaskのドキュメントを引用すると、次のようになります。 AsyncTasksは、理想的には短い操作(最大で数秒)に使用する必要があります。スレッドを長期間実行し続ける必要がある場合は、java.util.concurrentパッケージによって提供されるさまざまなAPIを使用することを強くお勧めします。エグゼキューター、ThreadPoolExecutor、FutureTask。 今私の質問が発生します:なぜですか?このdoInBackground()関数はUIスレッドから実行されるため、ここで長時間実行される操作があると、どのような害がありますか?

13
画面の回転中にAsyncTaskを処理する方法は?
インスタンスの状態を保存する方法や、画面の回転中にアクティビティが破壊されるのに対処する方法についてよく読みました。 多くの可能性があるようですが、AsyncTaskの結果を取得するのにどれが最適かわかりません。 単に再起動しisFinishing()てアクティビティのメソッドを呼び出すAsyncTaskがいくつかありますが、アクティビティが終了している場合は何も更新されません。 問題は、失敗または成功する可能性のあるWebサービスへの要求を実行するタスクが1つあり、タスクを再開するとユーザーの経済的損失が発生することです。 これをどのように解決しますか?考えられる解決策の長所または短所は何ですか?

12
Androidのフラグメント。画面の回転または構成の変更中にAsyncTaskを保持する
私はスマートフォン/タブレットアプリで作業しており、APKを1つだけ使用し、画面サイズに応じて必要に応じてリソースを読み込んでいます。最適な設計の選択は、ACLを介してフラグメントを使用することであるようです。 このアプリは、これまでアクティビティベースのみで正常に動作してきました。これは、アクティビティでAsyncTasksとProgressDialogsを処理して、画面が回転したり、通信中に構成が変更されたりした場合でも機能させるためのモッククラスです。 アクティビティの再現を避けるためにマニフェストを変更することはありません。マニフェストを変更したくない理由はたくさんありますが、主に公式ドキュメントでは推奨されておらず、これまで管理していないため、推奨しないでください。ルート。 public class Login extends Activity { static ProgressDialog pd; AsyncTask&lt;String, Void, Boolean&gt; asyncLoginThread; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.login); //SETUP UI OBJECTS restoreAsyncTask(); } @Override public Object onRetainNonConfigurationInstance() { if (pd != null) pd.dismiss(); if (asyncLoginThread != null) return (asyncLoginThread); return super.onRetainNonConfigurationInstance(); } private void …

11
java.net.UnknownHostException:ホスト「<url>」を解決できません:ホスト名に関連付けられたアドレスがなく、文字0の入力の終わり
Webサービスから質問を読み込むアプリを作成しましたが、正常に動作します。ただし、クラッシュすることがあり、これが発生する理由がわかりません。特に、必要な権限も付与しているためです。正常に動作しますが、ランダムにクラッシュしてこのレポートが表示されます。 private void sendContinentQuestions(int id) { // TODO Auto-generated method stub //Get the data (see above) JSONArray json = getJSONfromURL(id); try{ for(int i=0; i &lt; json.length(); i++) { HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;(); JSONObject jObject = json.getJSONObject(i); longitude":"72.5660200" String category_id = jObject.getString("category_id"); String question_id = jObject.getString("question_id"); String question_name …

4
AsyncTaskでコンテキストを取得する
OpcionesというクラスのAsyncTaskでコンテキストを取得しようとしています(このクラスはそのタスクを呼び出す唯一のクラスです)が、その方法がわかりません。次のようなコードが表示されました。 protected void onPostExecute(Long result) { Toast.makeText(Opciones.this,"Subiendo la foto. ¡Tras ser moderada empezara a ser votada!: ", Toast.LENGTH_LONG).show(); } しかし、それは私にとってはうまくいきません: "No enclosing instance of the type Opciones in scope"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.