0

私はAndroidの初心者です。プッシュ通知とともに XMPP チャット クライアントを作成したいと考えていました。Openfire をインストールし、ローカル マシンでサーバーをテストする準備が整いました。

この時点で私がやっていること 1. ASYNC タスクで XMPP 接続を作成する 2. onPost チャット マネージャーを作成する

protected void onPostExecute(final Boolean success) {
        if (success) {
            if (connection != null) {
                chatManager = connection.getChatManager();
                Chat newChat = chatManager.createChat("shobhit",
                         new MessageListener() {
                            public void processMessage(Chat chat, Message message) {
//Do something
                            }
                        });
            }
        }
    }

しかし、これが正しく行われている場合、私は完全に混乱しています。ASYNC は短期間のアクティビティにのみ使用する必要があり、ここで接続がタイムアウトになる可能性があることを、stackoverflow のどこかで読みました。

可能性のある解決策として、これらも見つけました: Runnable、Handlers Create a Service Broadcast receivers

どの方法を選択すればよいかわかりません。最適な方法とその例へのポインタを提案できますか?

ありがとうチェタン

4

2 に答える 2

1

あなたが言ったように、 ASYNC は短期間のアクティビティにのみ使用する必要があります。Android で Asmack のいくつかのバージョンを使用すると仮定すると、接続は (ネットワーク プロセスとして) アクティビティとは別のスレッドにある必要があるため、XMPP サーバーへの接続には新しいスレッド/ランナブルを使用する必要があります。その後、Asmack は独自のスレッドを使用しますが、気にする必要はありません。このテンプレートを使用すると、android によっていつでも強制終了される可能性のある単純なアプリケーションを作成できます。長時間抵抗したい場合は、XMPP部分のサービスを使用する必要があります

于 2013-04-27T11:16:12.497 に答える
0

AsynTask を使用して接続を作成します。Android では、すべてのネットワーク関連のタスクは UI スレッドとは異なるスレッドである必要があるため、doInBackground() メソッドから呼び出します。接続を長時間維持したい場合は、サービスに入れてください。

于 2016-08-15T05:27:13.160 に答える