問題タブ [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 - TextView setText not working inside ScheduledExecutorService runOnUiThread
Code :
I want to update text in TextView for every 1 second, but this seems to work only for the first time and later text is not updated.
Anyone know what's the issue ??
android - ソケット IO runOnUiThread が機能しない
ソケット io の runOnUiThread に問題があります。私はこのライブラリを使用しています。私はいくつかのイベントのリスナーを持っています。このイベントが発生したら、イメージを変更します。しかし、イベント画像を取得しても以前のままで、なぜそれが起こったのかわかりません。たぶん、誰かが私が間違っていることを助けたり説明したりします。前もって感謝します。これは私のコードです
編集!
ソケットが正常に接続され、ログにオンライン/オフラインのメッセージが表示されます。また、コードをデバッグしてもエラーは表示されません。完全なコード
}
android - runOnUiThread() を繰り返し実行すると、例外が発生します
(2016.3.15更新)
先週奇妙な問題に遭遇しました。これについてあなたと話したいと思います。
問題のシナリオ:</p>
AppCompatActivity に searchView があります。テキストが変更されるたびに、アクティビティ内のフラグメントは " getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, fragment).commit();
" に置き換えられます。
フラグメントには、SearchThread と呼ばれるスレッドがあり、onActivityCreated()
. 要するに、そのgetActivity().runOnUiThread(new Runnable{...})
中にメソッドがあります。"new Runnable()" の内容に関係なく、searchView のテキストが急速に変化すると NullPointerException が発生し、このフラグメントが頻繁に再確立されます。
ログキャット:
しかし、runOnUiThread の代わりに sendMessage(searchHandler.obtain...) を使用すると、すべてがうまくいきます!!
GymFragment.Java:</p>
SearchActivity.Java :
ソリューション:</p>
1) "getActivity()..." をコメントアウトします。代わりに、コメント化された "sendMessage(searchhandler.obtain..)" を使用します。
2) getActivity().runOnUiThread() を実行する前に、まず getActivity()==null を判断します。
2016.3.14:
[いくつか興味深いもの:)]
- 「runOnUiThread」のソースコード
runOnUIThread(Runnable r)のソースコード:</p>
実際、runOnUiThread は mHandler.post(Runnable r) を呼び出します。
post(Runnable r) の内容を見てみましょう:
getPostMessage(Runnable r) では:</p>
次に Message.obtain() で:</p>
2.「sendMessage(Message msg)」のソースコード:</p>
ここでわかるように、sendMessage(Message msg) の実装は、post(Runnable r) の実装とほぼ同じです。この違いは、getPostMessage(Runnable r) に関連している可能性があります。
つまり、簡単に言えば、実際に searchHandler.SendMessage(searchHandler.obtainMessage(0,str)) が正しく実行される結果となる一方で、同時に getActivity().runOnUiThread(new Runnable{...}) の例外が発生します。それらを繰り返し実行しましたか?どうもありがとう!
android - 間隔 (1 分) で実行されているハンドラーを停止するには?
私はアプリケーションを開発しています.1分ごとにデバイスの場所をサーバーに送信しています. ここでは Handler を使用してタスクをスケジュールしています。ユーザーがSTOPボタンをクリックすると、ハンドラーはその実行を停止する必要があります。私はこれを達成することができません。以下の私のコードを見つけてください。
StopTaskコード:
試してみましたがstopService
、removeCallbacks
うまくいきませんでした。誰でも私にこれに対する解決策を提供できますか?
更新しました
これは ** callAsynchronousTask()** です
データを2回投稿しています。最初は、ユーザーが [ START ] ボタンをクリックしてから、タイマーを開始して 1 分ごとに実行するときです。
android - スレッドが中断された後、どこかを確実に通過するにはどうすればよいですか?
スケジュールされたUIでアニメーション変更画像のスレッドを作成します。ボタンクリック中は割り込み、固定画像を設定します。しかし、onClick の setImage の後に runOnUiThread の setImage が誤って発生すると、間違った画像になります。
このコードで、InterruptedException から戻った後にどこかを確実に通過できる方法はありますか。(UIスレッドでこれ以上遅延したくない)
助けてくださいありがとう!
//一度オンクリック
編集:提案どおりにこの部分を書き直しました。
//始める
// クリックで終了
「doInBackground」がスリープ トレッドにない間は動作しない場合があります。onCancel には入りましたが、実際にはキャンセルしませんでした。isCanceled() で false になりました。