私はアンドロイドIMアプリケーションのためにasmackを使用しています。ここで私はAIDLインターフェイスを使ってリモートサービスを使用しています。アンドロイドサービスでキープアライブ接続を処理する方法
私のサービスの方法onStartCommand
の中に私は以下のようにコードを書く。私は接続を作成し、それを使ってログインします。誰かが私のアプリケーションを実行するときonCreate
私のアプリケーションの主な活動の方法私のサービスを実行getApplicationContext.StartService(serviceIntent)
。それは問題なく動作していますが、数分後(時には10分、さらには十数時間以上)、サービスを取り付けるmessageListener
がメッセージの受信を停止します。しかし、私は接続が存在することを知っています。同じ時刻に私はxmppConnection
を使ってメッセージを送信します。それはユーザーBにメッセージを送信していますが、ユーザーBからのメッセージは受信していません。
public int onStartCommand(final Intent intent, final int flags, final int startId) {
ConnectionConfiguration config = new ConnectionConfiguration(URL, MyPort, Host);
xmppConnection = new XMPPConnection(config);
xmppConnection.connect();
xmppConnection.login("[email protected]", "testpass");
xmppConnection.addPacketListener(myMessageListener, new PacketTypeFilter(Message.class));
return START_STICKY;
}
private PacketListener myMessageListener = new PacketListener() {
public void processPacket(Packet packet) {
Message msg = (Message) packet;
}
}
ご案内してください。
コードを書式設定し、投稿に適したタイトルを選択してください。 – Flow
問題は私の接続が存在しますが、パケットを聴くことができません。その接続を使用してsendPacketを呼び出すことはできますが、なぜそれが着信パケットを待ち受けるのか分からないのです。私はsendPacketをメッセージパケットを送信するサービス、ご案内ください。 私は以下のリンクに掲載されているのと同じ問題に直面しています。 http://stackoverflow.com/questions/5040852/packet-listener-in-android-service – aftab
あなたの投稿されたリンクは答えられているようです----> http://stackoverflow.com/questions/5040852/packet-listener -in-android-service – sascha10000