問題タブ [runnable]
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 シンプルな双方向 IM の問題 (Runnable)
非常に単純な双方向 IM アプリをテストしようとしています。クライアントがAndroid上にあり、サーバーが私のPC(Java)上にある場合。PC から PC への Java でこのアプリをテストしましたが、正しく動作します。
しかし、Androidエミュレーターで、PCからAndroidエミュレーターにメッセージを送信すると、PCから2回送信されたときにのみメッセージがAndroidに表示されます。PCから送信ボタンを1回クリックしても何も表示されず、もう一度クリックするとAndroidにメッセージが表示されます。
実行可能なメソッドに問題があると考えていますが、完全にはわかりません。誰かが問題を指摘してくれることを願っています。前もって感謝します。
android - postDelayed を使用して特定の時間にタスクを実行する
特定の時間にタスクを開始したい。そのために、次のように使用runnable
してpostDelayed
メソッドを作成します。
私のコードでは、次のように使用mLunchTask
します。
次のようにmyDelay
計算されます。
およびはユーザーが設定しますdesiredHour
。desiredMinute
期待されるのは、およびおよび 0 秒でMY TASK
開始することです。ただし、「MY TASK は数秒遅れて開始されますが、これはランダムに見えます。desiredHour
desiredMinute
上記のコードに基づいて、正確な時間に開始されない理由はありますか?
ありがとう
java - ScheduledThreadPoolExecutor、実行可能なクラスJAVAを停止する方法
私は次のコードを書きました:
func()が呼び出されたときに、ScheduledThreadPoolExecutorを停止したいと思います。それ以上動作する必要はありません!関数func()をVoterクラス内に配置し、ある種のコールバックを作成する必要があると思います。しかし、多分私はシュートクラスの中からそれをすることができます。
どうすれば適切に解決できますか?
android - スレッドの問題でメディア プレーヤーを起動する
Web サイトからストリーミングするメディア プレーヤーを起動しようとしています。現在、「開始」を押すと、ストリームが接続されている間、アクティビティ全体が 5 ~ 20 秒間フリーズします。「player.start();」を取得しようとしています ストリームが接続している間にアクティビティを解放するためにスレッドで実行するように呼び出しますが、動作していません。誰にもアイデアはありますか?
android - Android は、描画アプリに取り消しスタックを実装します
グラフィックスに慣れるために、Android SDK のサンプル Finger Paint アプリの作成を開始しました。最近、元に戻す/やり直しを実装しようとしていますが、試したすべての方法で障害に遭遇しました。これに関するいくつかのスレッドを見つけましたが、これらの問題を乗り越えたスレッドはありません。ここに私の主な2つの試験があります:
戦略 1:
パス (またはキャンバス) のスタックを保存し、元に戻すときに画面をクリアして、最後のパスを除く各パスを再描画します (または最新のキャンバスを元に戻します)。
ここでの問題はおそらく単純ですが、ビューに何も再描画させることができません。保存したパスを描画する (または保存したキャンバスを復元する) にはどうすればよいですか?
戦略 2:
タッチするたびに getDrawingCache() を使用してビットマップのスタックを保存します。元に戻すときは、最後のビットマップを元に戻します。
保存は runnable から post() を介して実行する必要があるため、onDraw() が終了した後に実行されます (post は、invalidate() の後にシステム メッセージ ラインに追加します)。問題は、実行可能な getDrawingCache() から実行すると、最初のバージョン以降の変更が表示されないように、常に最初のバージョンのペイントが返されることです。
getDrawingCache() が runnable から呼び出されたときに、ビューの現在の状態が表示されないのはなぜですか?
私はこれでしばらく戦ってきました。ありがとう。
android - Runnableオブジェクトをハンドラーに渡すにはどうすればよいですか?
私は本を通して学んでいます、そしてそれは私にこの例を与えます:
と
これはうまくいきます。しかし、本のさらに下には、次のように書かれています。
メッセージオブジェクトに煩わされたくない場合は、Runnableオブジェクトをハンドラーに渡すこともできます。ハンドラーは、アクティビティUIスレッドでそれらのRunnableオブジェクトを実行します。...任意のビュー(つまり、任意のウィジェットまたはコンテナー)で同じメソッドを使用できます。これにより、コードが少し単純化され、Handlerオブジェクトをスキップできるようになります。
Runnable
しかし、オブジェクトを介してこれを行う方法の例はありません。誰か例がありますか?
android - Android で画面をロックするとゲームが高速化されます
遅延した Runnable を投稿する Handler を使用してゲームを更新しています。
ロック画面のボタンを押してからゲームを再開すると、想定よりもはるかに高速に実行されます。画面をロックして再開するたびに、動作がどんどん速くなります。ただし、アクティビティを再開するか終了してからアクティビティを再度開くと、再び通常の速度で実行されます。助けてください。前もって感謝します。
java - 実行中のコードを停止できるようにするにはどうすればよいですか?
アップロード、画像、音声、動画の変換など、バックグラウンドで長い操作を実行しています。ユーザーが操作を完全に停止するように要求した場合は、それらを停止/キャンセルしたいと思います。
どうすればこれを達成できますか?このためのデザインパターンはありますか?
注:実行中のコードの一部はキャンセルできますが、キャンセルできないものもあります。その周りの妥協点を見つけるにはどうすればよいですか?
編集:私は操作をすぐに停止したいと言ったはずです。
android - ビューからのUIスレッドでの実行
それ自体にいくつかのビューを含むカスタムビューがあります。このコンテナビュー内のビューの1つがクリックされると、これもコンテナビュー内のTextViewを毎秒更新する必要がある「タイマー」スレッドを実行するように作成しました。TextViewを毎秒更新したいときに問題が発生します。どうやら、思ったほど簡単ではなかったようです。このようにコンテナビュー内にRunnableを実装し、ボタンがクリックされてタイマーを開始したときにスレッドを実行しました。
典型的なcannot-touch-views-outside-hierarchy例外が発生します。これは、基本的にUIスレッドで実行されていないことを意味します。post(Runnable)
スレッドの最後まで1秒間更新するのを待ちたくないので、ここでは使用しません。また、アクティビティ全体をそれ自体に渡して実行することも実用的ではありませんrunOnUiThread(Runnable)
。それで、誰かが私がこれをどうやってやるのか教えてもらえますか?誰かが説明が必要な場合は、私に知らせてください!