問題タブ [android-asynctask]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 低メモリ状態でAsyncTaskを存続させますか?
私はホーム画面ウィジェットをImageViewとして作成しました。コードはウィジェット全体を生成し、それをビットマップとしてRemoteViewsに書き込みます。私のG1のようにメモリが少ない低速のデバイスでは、ビットマップの生成に数秒かかることがあります。恐ろしい強制終了を回避するために、すべてのグラフィックコードをAsyncTaskに移動しました。ここまでは順調ですね。
ただし、メモリが非常に少ない状態では、AsyncTaskは、ビットマップの生成が完了する前にOSによって簡単に強制終了され、ホーム画面に空の四角が表示される可能性があります。したがって、AsyncTaskを作成する前に、現在+ 5秒間アラームを設定し、グラフィックが完了した後、アラームをリセットします。ここでの前提は、アラームがトリガーされた場合、プロセスが強制終了された可能性が高く、別のnow+5アラームを設定して再開する必要があるということです。
これは機能しますが、メモリが極端に少ない状態では、ウィジェットの描画に数回(20秒以上)かかる可能性があるため、静的リソースとしてプレースホルダー砂時計画像を追加しました。これは、実際の画像の準備ができるまでホーム画面に表示されます。 。
私の質問はこれです:これは最良の方法ですか?終了するまでAsyncTaskを強制終了しないように(丁寧に)OSに依頼する方法はありますか(強制終了すると実際にはシステムリソースの浪費が増えるという理由で)?
プロセスが「表示」として分類されている場合、Androidは最後の手段を除いてプロセスを強制終了しないことを理解しています。しかし、AsyncTaskを「可視」としてタグ付けする方法がわかりません。ウィジェットの描画が完了するとすぐにプロセスが強制終了されることを非常に嬉しく思います。完了するのに十分長く生き続けることを望みます。
android - Androidのスレッドの問題
30秒ごとにループできるようにしたい次のコードがあります。
場所を取得すると起動し、OverlayTaskは正常に実行されます。また、メニュー項目に割り当てられたときにも実行され、強制的に実行されます。
ただし、タイマー内でエラーが発生します。
エラーは...です。
MyAsyncTaskの実行エラー:(2573):ビュー階層を作成した元のスレッドのみがそのビューにアクセスできます。
android - Androidでメッセージの登録とポーリングにアプローチする方法について混乱しています
まだ行っていない場合はデバイスを自動登録してから、この登録で受け取った資格情報を使用してメッセージのポーリングを開始する必要があります。
さて、サービス、スレッド、非同期タスク、AlarmManagerについてかなり読んだ後、これを処理する方法について完全に混乱しています。
それで、私の2つの主要なタスクがあります。愚かすぎないアプローチとして何をお勧めしますか
登録DBにクレデンシャルが保存されていない場合、現在UIスレッドからサービスを生成しています。このサービス内で、サーバーにリクエストをPOSTし、新しいデバイスのクレデンシャルを受信する非同期タスクを開始します。stopSelfはサービスを終了します。
そんな風に遊んでくれませんか?
ポーリング。私はそれをどのように行うべきかについての単一の手がかりを持っていません。アプリが一番上にある間、メッセージを頻繁にポーリングしたいのですが、毎分言いましょう。それ以外の場合、アプリが実行されていないときに、AlarmManagerのsetInexactRepeating()メソッドを使用することを考え、15分ごとにポーリングします。
それを行うためのより良いまたはより穏やかなリソースの方法はありますか?
java - 完了後に onPostExecute が呼び出されない AsyncTask
何らかの理由onPostExecute()
で、終了後に呼び出されませんAsyncTask
。
私のクラス宣言:
public class setWallpaperForeground extends AsyncTask<String, Integer, Boolean>
私の onPostExecute():
protected void onPostExecute(Boolean result)
すべて正常に動作doInBackground()
し、正常に完了してブール値を返しますが、終了するだけです。
ありがとう
java - Android でサーバーから定期的にデータを取得 (ポーリング) する
残りの呼び出しを使用してサーバーからデータを取得し、それをビューに追加するアプリに取り組んでいます。すべての初期データを正しく取得します。私はそれを行うために AsyncTask を使用します。
ここで、サーバーから定期的に (たとえば 2 分) 新しいデータをフェッチしてビューに追加したいと考えています。Android のサーバーから定期的にデータをフェッチ (ポーリング) します。
android - 横向きへの切り替えが遅い
これは onCreate() で呼び出されています。向きの切り替えを高速化するにはどうすればよいですか?
java - 構成変更後にProgressDialogが更新されない(方向が水平に変わる)
ProgressDialogは、画面の向きが変わると更新を終了します。asynctaskを回収し、asynctaskが破棄されて再構築された後、そのアクティビティを新しいアクティビティに設定する修正を導入しました。progressdialogで完了したパーセンテージは、方向が変更される前のパーセンテージのままです。
私は何が欠けていますか?
android - Android - 更新後にリストがトップに戻る
ハンドラーの postDelayed() メソッドを介して 2 秒ごとに更新されるリストがあります。
2 秒ごとに AsyncTask が実行され、HTTP GET 要求が行われ、JSON がオブジェクトのリストに変換され、ListAdapter が設定されます。
私の問題は、タスクが完了するたびに (つまり、約 2 秒ごとに) リストの真ん中または一番下までスクロールしても、リストが一番上に戻ってしまうことです。これはエンド ユーザーにとって非常に煩わしいので、バックグラウンドでリストを更新する必要がありますが、AsyncTask の完了時にリストの現在のビューがトップに戻らないようにします。
必要なコードをさらに含めることができます。私はAndroid開発に少し慣れていないので、他の人にとって何が役立つかわかりません。
追加情報
hacksteak25 からの提案を受けて、アダプターからすべてのデータを削除してから、一度に 1 つのオブジェクトを追加し直すところまで到達できました。おそらくこれでも画面がジャンプする可能性があるため、これは最終的な解決策ではありませんが、ある時点でデータをマージする方法の概念実証として使用しようとしています.
私の問題は、次のコードを呼び出すことです。
「add(myObject)」への最初の呼び出しの後、MyListAdapter の getView() メソッドが呼び出されています。カスタム アダプターのプライベート内部 ArrayList は、onCreate() で myObjects を使用せずにアダプターを設定したか、アダプターで clear() を呼び出したため、この時点では空です。いずれにせよ、ビューを取得するオブジェクトが ArrayList にないため、これにより getView が失敗します。
getView() は次のようになります。
その最後の行は、IndexOutOfBoundsException を引き起こす行です。
リストをジャンプさせずに、そこに必要なデータを取得するこの状況をどのように処理すればよいですか?
android - droid-fu AndroidでBetterAsyncTaskを使用しようとすると、強制終了します
私は現在、Androidライブラリandroid fuを使用して、最初の適切なアプリを手伝おうとしています。
droid fuライブラリを使用してテストプロジェクトを作成しようとしていますが、アプリをテストするたびに強制的に閉じます。
asynctaskの例を使用しました。アプリをテストすると、アプリが読み込まれ、その意味が実行されますが、betterasynctaskに置き換えると、アプリが強制終了します。
テストアプリのソースはhttp://androidapp.dino-digital.com/DroidFuTest.zipからダウンロードできます。
java - Android で非同期 URL 接続を行うにはどうすればよいですか?
次のクラスを使用して Web サービスに接続しています。これを非同期にしたいと思います。これどうやってするの?