アクティビティにソケット接続が開いているスレッドがあります。スレッドをグローバルに使用して、他のアクティビティのスレッドからデータを取得できるようにします。バックグラウンドで実行するようなもの...
誰かが私に解決策や例を持っていますか?
ありがとう。
アクティビティにソケット接続が開いているスレッドがあります。スレッドをグローバルに使用して、他のアクティビティのスレッドからデータを取得できるようにします。バックグラウンドで実行するようなもの...
誰かが私に解決策や例を持っていますか?
ありがとう。
あなたはサービスを探しています
またはこのコードを試してください
void runInBackground() {
new Thread(new Runnable() {
@Override
public void run() {
// DO your work here
// get the data
if (activity_is_not_in_background) {
runOnUiThread(new Runnable() {
@Override
public void run() {
//uddate UI
}
});
}
runInBackground();
}
});
}
Async Task を使用する 3 つ目の方法 - AsyncTaskについて
複数のアクティビティがこのスレッドにアクセスできるようにする場合は、スレッドを実行する Vaibs_cool のサンプルを組み合わせます (これは通常のスレッドであり、Android 固有のものではありません)。
アプリケーションを拡張し(マニフェストにエントリを作成)、そのスレッドをそこに配置します。
そうすれば、あなたのすべての活動はそれと話すことができます。
次の 2 つのオプションがあります。
ソケットをオープンし、Activity close 使用後もオープンにしたい場合Service
一方、アクティビティの実行中にソケットを開き、アクティビティの終了時に閉じる場合は、使用しますAsyncTask
使用方法の例を見つけることができますAsyncTask
here
ドキュメントから:
ネットワーク操作には、予測できない遅延が発生する可能性があります。これによりユーザー エクスペリエンスが低下するのを防ぐには、常に UI とは別のスレッドでネットワーク操作を実行します。AsyncTaskクラスは、UI スレッドから新しいタスクを起動する最も簡単な方法の 1 つを提供します。