問題タブ [android-runonuithread]
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 - runOnUiThread(new Runnable(){句読点(トークン)の問題
どういうわけかそれは機能しません、私によるとそれはこれであるはずです:
誰かが私が何かを逃しているところに何か考えがありますか?
正式なコメント 私はばかげた問題を知っているか、あるいは不可能なことをしているかもしれませんが、私はすべての論理的な可能性を試しました。おそらく何かが足りないか、私は不可能なことをしようとしています。手伝ってくれませんか。次のコードを使用しようとしていますが、トークンの問題が発生します。
runOnUiThreadをブロックすると、別のスレッドからUIを適応させようとしているためにクラッシュしますが、少なくともトークンの問題はありません。
android - UI スレッドを使用して ImageView のビットマップを更新する
別の操作中に、ビットマップのピクセルを 1 秒ごとに操作し、結果を に表示する必要がありImageView
ます。これは、ビットマップと更新を操作するメソッドですImageView
。
上記のメソッドは、UI スレッド (onclick
ボタンのイベント) から次のように呼び出されます。
アプリの実行中は、アプリのクラッシュや ANR は問題ありませんが、ImageView
( iv1
) は更新されません。コードをデバッグすると、ビットマップのピクセルが操作されています。try/catch
また、ブロックのコメントを外しましたが、結果は同じでした。
奇妙です: while ブロックの開始と終了にコメントを付けると、ビットマップが正しく操作され (1 回と 1 回j = 70
)、ImageView
期待どおりに更新されます!
更新の質問:
eshayne と Onik のコメントと回答に対して、ピクセル操作のoverlay
方法を単純な操作に変更して結果を確認しましたが、結果は同じでした。実際のoverlay
方法を使用しますopenCV
が、ここではピクセルの色を変更するため、使用せずに結果を確認できますopenCV
:
オーバーレイ メソッド、簡略化:
ImageView
を毎秒更新するにはどうすればよいwhile
ですか? 私は何か間違ったことをしましたか?
android - Thread.wait() を呼び出す
でいくつかの操作を行い、次にcallcurrentThread
で待機する必要があります。私はこのコードを試していましたUiThread
UiThread
currentThread().notify()
しかし、java.lang.IllegalMonitorStateException: object not locked by thread before wait()
例外があります。私を助けてください。
android - setListAdapter が表示されない
フェッチ結果のセットをリストとして表示しようとしています。ダミーデータを使用しようとすると、正しく表示されますが、サーバーから取得したデータに変更しても何も起こりません。エラーが発生しないので、非常に混乱します
文字列配列countries
はrunOnUiThread
メソッドで正しく表示されますが、タイトルは正しく表示されません。titles 文字列配列に配置されたデータを確認しましたが、有効です。なぜこれが起こっているのですか?
java - スレッドを再開するには?
2 つのスレッドがあり、そのうちの 1 つはボタンを押すと開始されます。ボタンに 1 ~ 20 の値を表示するだけbtn.settext(""+ j)
です。そのボタンのリスナー内に、次のように記述しました。
t2 はスレッドです。実行時に何が起こるかというと、スレッド 2 の実行中にボタンをクリックしても何も起こりませんが、スレッド 2 がジョブを終了してボタンをクリックするとアプリがクラッシュします。それが起こる理由は何ですか?
android - ハンドラーでシークバーを更新できません
MediaPlayer で曲の進行状況に応じてシークバーを更新しようとしています。私はスレッドを使用してそのタスクを実行しています。
最初に、スレッド内で Thred を使用して UI を更新しようとしましたが、アプリがクラッシュし、元のスレッドのみがビューに接続できると言います。
次に、実行可能なスレッド内のハンドラーで更新しようとしました。これは正常に機能しますが、シークバーを更新していません。ログを取得すると、ループがハンドラー内にないことがわかります。どこに問題があるのかわからない。SeekBar の更新を手伝ってください。
コード:
android - スレッドはダイアログを実行しませんか?
ダイアログとスレッドがあります。スレッドが終了したら、ダイアログを実行したいと思います。問題は実行される場合と実行されない場合があります。なぜこれが起こるのか理解できません。
どうすれば解決できますか?
スレッド
android - ArrayAdapter notifyDataSetChanged が UI スレッドで実行されない
以下のコードを実行して作成した新しいスレッド内で実行しています。
したがって、runonUI コードが実行されることはありません。アダプターを更新するには、UI スレッドで実行する必要があるという印象を受けました。また、アダプターを正しく更新していますか?
android - TextView のマーキー、点滅するテキストビュー、シークバーの進行状況スレッドが UI をブロックする
アプリで 3 つのアニメーションを使用しています。
1. TextView マーク (スクロールは継続)
2. Textview の点滅 (音楽アプリが一時停止モードの場合)
3. SeekBar プログレス スレッド (再生された曲のプログレスを表示)
アプリに何よりも効果を使用している間、アプリのUIはほとんどハングしません。すべてがUIスレッドで作業していると思います。お互いに邪魔することなく、それぞれが独立して仕事をしているように扱いたいです。
コードは以下のようなものです:
アプリの XML レイアウト:
私のクラスコードは以下のようなものです:
点滅アニメーション:
互いにぶら下がることなく独立して動作するようにこれらすべてを実装するための助けが必要です。