問題タブ [android-threading]
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 - AsyncTask と Thread/Runnable の違い
私を困惑させる質問があります。
SDK ドキュメントで推奨されているように、バックグラウンド スレッドを使用する必要がある GPS/位置情報を取得するなど、別のスレッドで何かを実行したいとします。
だからここに質問があります:違いは何ですか
AND
Thread
を使用してバックグラウンドで を作成するAsyncTask
を作成
Thread thread1 = new Thread(new Runnable()
して実装しrun()
ますか?
android - 新しいスレッドがビューに触れることができる理由
私たちが Android アプリケーションで知っているように、ビューをタッチするだけでMain/UI Thread
、それ以外の場合はCalledFromWrongThreadException
以下のメッセージでスローできます。
しかし、 で 1 回だけタッチするとonCreate()
、この Exception はスローされず、「Hello Again!」オンに設定TextView
なぜなのかご存知ですか?
android - TCP 接続の作成時にスレッドが停止する
スレッド経由で接続を開始するアプリケーションを構築していますが、接続を初期化すると、アプリケーションは接続せず停止します (動作は継続しますが、何もしません)。1週間前は問題なく動作していましたが、Android Studioを更新するとこの問題が発生し始めました。
これは Connection の抽象クラスです。
デバッグを行っているときに、ソケットがインスタンス化されると明らかにブロックされることがわかりました。
android - Android でバックグラウンド タスクを最適化する方法
Room Database (基本的に SQLite のラッパー) からデータを取得して、そのデータのチェックを行う必要があるアプリがあります。
この非同期呼び出しを毎分トリガーする Handler を使用して実装しました。ハンドラは mainThread に登録されていますが、タスクが呼び出されると、新しいスレッドをディスパッチしてこのタスクをバックグラウンドで実行します。
私の問題は、アプリケーションがフォアグラウンドにないときにこの操作を行う必要がないことです。理想的には、アプリがフォアグラウンドに戻ったときにハンドラーがタスクを起動し、そのタスクが終了した後、1 分以内に次の呼び出しをスケジュールする必要があります。
しかし、ホームボタンをクリックしてアプリを終了し、他のアプリを開くと、この操作が行われたことについてアプリがログを作成しているのが表示されます。
私の問題は、これが 6 時間または 7 時間実行されると、ユーザーの電話にバッテリーの影響が残るのではないかと心配していることです。アプリで行われたウェイクロックはありません。
編集: このクラスを使用する 3 つのアクティビティがあり、これ (BackcgroundExecutor) はシングルトンの内部クラスです。それを1つのライフサイクルに接続すると、3つすべてのライフサイクルに応じて適切に機能させる必要があります。
この問題をどのように修正しますか?