問題タブ [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.

0 投票する
2 に答える
847 参照

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 ??

0 投票する
1 に答える
588 参照

android - ソケット IO runOnUiThread が機能しない

ソケット io の runOnUiThread に問題があります。私はこのライブラリを使用しています。私はいくつかのイベントのリスナーを持っています。このイベントが発生したら、イメージを変更します。しかし、イベント画像を取得しても以前のままで、なぜそれが起こったのかわかりません。たぶん、誰かが私が間違っていることを助けたり説明したりします。前もって感謝します。これは私のコードです

編集!

ソケットが正常に接続され、ログにオンライン/オフラインのメッセージが表示されます。また、コードをデバッグしてもエラーは表示されません。完全なコード

}

0 投票する
1 に答える
817 参照

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:

[いくつか興味深いもの:)]

  1. 「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{...}) の例外が発生します。それらを繰り返し実行しましたか?どうもありがとう!

0 投票する
2 に答える
555 参照

android - 間隔 (1 分) で実行されているハンドラーを停止するには?

私はアプリケーションを開発しています.1分ごとにデバイスの場所をサーバーに送信しています. ここでは Handler を使用してタスクをスケジュールしています。ユーザーがSTOPボタンをクリックすると、ハンドラーはその実行を停止する必要があります。私はこれを達成することができません。以下の私のコードを見つけてください。

StopTaskコード:

試してみましたがstopServiceremoveCallbacksうまくいきませんでした。誰でも私にこれに対する解決策を提供できますか?

更新しました

これは ** callAsynchronousTask()** です

データを2回投稿しています。最初は、ユーザーが [ START ] ボタンをクリックしてから、タイマーを開始して 1 分ごとに実行するときです。

0 投票する
1 に答える
77 参照

android - スレッドが中断された後、どこかを確実に通過するにはどうすればよいですか?

スケジュールされたUIでアニメーション変更画像のスレッドを作成します。ボタンクリック中は割り込み、固定画像を設定します。しかし、onClick の setImage の後に runOnUiThread の setImage が誤って発生すると、間違った画像になります。

このコードで、InterruptedException から戻った後にどこかを確実に通過できる方法はありますか。(UIスレッドでこれ以上遅延したくない)

助けてくださいありがとう!

//一度オンクリック

編集:提案どおりにこの部分を書き直しました。

//始める

// クリックで終了

「doInBackground」がスリープ トレッドにない間は動作しない場合があります。onCancel には入りましたが、実際にはキャンセルしませんでした。isCanceled() で false になりました。 ここに画像の説明を入力