問題タブ [android-handler]
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 - Android AsyncTask [Looper.prepare()を呼び出していないスレッド内にハンドラーを作成できません]
AsyncTask
関数に基づいて画像のアップロードを作成しました。アップロードした後、でこのエラーが発生しonPostExecute()
ます。StackOverflowの回答をいくつか読みましたがRunnable
、別のソリューションを実装したにもかかわらず、エラーが何度も発生し続けました。
私のコード:
私のlogcat:
zaplの提案の後に編集:
android - AsyncQueryHandler の実装
このリンクAsyncQueryHandler
でまったく同じ問題が発生しているため、実装しようとしていますが、実装に関する例や何も表示されません。
やってみた
それはコンストラクターがドキュメントに示しているものですが、エラーが表示さcannot instantiate the type AsyncQueryHandler
れるので、どうすればそれを使用できますか?
android - データベースの更新をスケジュールし、ダイアログを表示する
わかりました、これは繰り返しの質問だと思います。申し訳ありません。Web からデータを収集して DB を更新し、データのダウンロード中にダイアログを表示する必要があります。私は自分のダイアログを持っています。データはうまくいき、データベースに書き込みます。私はいくつかの改善を行っています。今日、これは 1 つのアクティビティから機能します。私の意志は、これがすべてのアプリケーションで発生し、間隔を置いて開始することです。そして、これは問題が発生する瞬間です。AlertManager を使用してアクションのスケジュールを設定しています。データベースをチェックしてWebからデータを取得し始めるBroadcastReceiverがあります。この時点で、私は問題に直面しています。進行状況ダイアログが表示されず、データが完全に Web から取得されません。
BroadcastReceiver からのコード:
StackOverflow と Kam でこれらの投稿を読む:
BroadcastReceiver の AlertDialog
システムの再起動後にブロードキャスト レシーバーにアラート ダイアログを表示する
BroadcastReceiverからアンドロイドのアクティビティにデータを送信するには?
Android: サービスよりもアラームとインテント レシーバーを優先する<--Kam です
私の結論は次のとおりです。
- BroadcastReceivers はアクティビティではないため (Commonsware が指摘しているように) ダイアログを表示できません。
- BroadcastReceivers は、アプリをクラッシュさせる向きの問題を処理できません (onCreateDialog メソッドをオーバーライドするアクティビティでこれを修正します)。
- ハンドラは、BroadcastReceivers で使用するように指定されていません。
- サービスは、この種のタスクを実行するように指示されていません。
これを解決する方法を考えました。アクティビティから継承するクラスを作成し、オリエンテーションの問題を処理するクラスを作成し、ブロードキャストをスケジュールして、コンテンツをダウンロードし、ダイアログを表示します。そして、他のすべてのクラスはそれを継承します。この解決策は機能すると思いますが、問題を解決するための大きな回避策です。
私の質問が長すぎる場合は申し訳ありません。他のいくつかの解決策について話し合いたいと思います(私が提案したものが有効な解決策である場合、私はテストしていません)。
android - ズームアニメーションのループが実行されていない間?
lat/lng スパンに対して while ループ内でハンドラを実行しているため、特定のスパンの外にいる場合、そのマップは自動的にズームインします。私はこれとまったく同じ設定を使用しており、スパンではなくズーム レベルを比較していますが、問題なく動作します。これが私がやっていることです...
このコードを実行すると、Logcat は「Thinks we should!」を出力します。(基本的にログをフラッディング)際限なく。しかし、それは私のハンドラーでは何もしません...実際の zoomIn 呼び出しは起動せず、アプリケーションを強制終了するまで永遠にループします。私は何を間違っていますか?
android - 基本的な方法でハンドラーを実装する
特定の時間にログを起動するハンドラーにこのサンプル アプリケーションがありますが、開始ボタンをクリックしたときに動作していないようです。以下は私のコードです。
注:ボタンをクリックして実装するhandler.postAtTime()
と、返されますtrue
が、タイムピッカーを現在の時刻から1分に設定しても、DDMSのログは表示されません.DDMSのログメッセージは表示されません.
android - Android:デバイスの再起動後に既存のハンドラー?
デバイスが再起動されたときのハンドラーとその存在について質問があります。 を使用して 3 時間の遅延で 3 つのハンドラーを実行したとpostDelayed()
します。たとえば、デバイスが再起動された場合、それらのスレッドがまだ存在するかどうかを知りたかっただけです。または、それらを再度実行する必要がありますか? その場合、デバイスの再起動後にハンドラーを自動的に実行するにはどうすればよいですか? サービスを実行するために順番にレシーバーを開始する必要があるいくつかのスレッドを読みましたが、これについてどうすればよいか本当に混乱しています。
android - サービスのメッセージハンドラーが静的であることがどれほど重要ですか?
かなり基本的なサービスを考えてみましょう。
}
さて、lintを実行してEclipseでこれを開発している場合、現在2つのオプションから選択できます。
- 上記のコードでは、プライベート最終クラスのIncomingMessageHandler行に警告が表示され、実行時にすべてが機能するように、静的としてデカラリングする必要があることが示されます。
- そのクラス(IncomingMessageHandler)を静的にすると、クラス全体(KeepANumberService)のデータと関数にアクセスできなくなります。これは、コーディングが面倒です(場合によっては不可能ですか?)。
では、メッセージハンドラーを静的にすることはどれほど重要ですか?なぜ?
android - リスナーを使用してスレッドからアクティビティにアクセスする
2 つのクラスがあります。複数のウィジェットを制御するアクティビティ クラスと、スレッドを実装するカスタム SurfaceView クラスです。(非常に一般的な)。Activity クラスのさまざまなウィジェットで更新したいスレッドで特定の値が変更されるたびにトリガーできるシンプルなカスタム リスナーを SurfaceView クラスに実装しました。
スレッドクラス:
アクティビティのクラスによって呼び出されたメソッドから onChange を呼び出すたびに、問題なく動作します。ただし、スレッド自体がその状態 (私の場合は redraw メソッド) を更新し、onChange メソッドを呼び出すと、CalledFromWrongThread 例外が発生します。なぜ一方が機能するのに他方が機能しないのか、別のスレッドからウィジェットの更新を実際に実装するためのベストプラクティスは何かを誰かが説明できますか? いずれにせよ値をいつ更新するかを正確に知っているので、Activity の個別のハンドラ スレッドは必要ないようです。
android - AndroidはAsyncTaskで複数のWebサービスを呼び出します
私は問題なくAsynTask
単一のURL呼び出しに取り組んでいますが、 AsynTask
2つのWebサービスを次々に呼び出したいのですがAsyncTask
、コードやアイデアを送っていただけませんか。
私のコード:
android - メッセージ ハンドラーと WeakReference の問題
次のメッセージ ハンドラーは、サービスからメッセージを正常に受信します...
ただし、AVD (DDMS 経由で大きな KML ファイルをフィードしている) で問題なくテストできますが、「object path = message.obj;」行には、「この Handler クラスは静的である必要があります。そうしないと、リークが発生する可能性があります」という警告があります。
しかし、「static Handler handler = new Handler()」と言うと、「非静的フィールド myMapView への静的参照を作成できない」と不平を言ってコンパイルされません。そのような参照を作成できない場合は、できません便利なもの。
これにより、この問題について数時間グーグルで調べ、weakReferencesについて知りたいと思っていたよりも多くのことを学びました. 私が見つけたよくある推奨事項は、交換する必要があるということです...
と
しかし、これはまだコンパイルされず、非 dtatic フィールドへの静的参照を作成できないと不平を言っています。そのため、1週間前または1週間前の私の質問は、「サービスがアクティビティにデータを送信できるように、Android用のメッセージハンドラーを作成するにはどうすればよいですか?ありがとう、ゲイリー