Java 推送器在一次推送中复制并接收多个数据

Java 推送器在一次推送中复制并接收多个数据,java,android,android-studio,pusher,Java,Android,Android Studio,Pusher,我正在使用pusher,当android活动重新启动时,当我触发pusher调试控制台进行push时,我的pusher连接将复制值2,3,4次。下面是代码示例 PusherOptions options = new PusherOptions(); Pusher pusher ; @Override protected void onCreate(Bundle savedInstanceState) { try { super.onCreate(savedInstanceSta

我正在使用pusher,当android活动重新启动时,当我触发pusher调试控制台进行push时,我的pusher连接将复制值2,3,4次。下面是代码示例

PusherOptions options = new PusherOptions();

Pusher pusher ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    try {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    options.setCluster("ap3");
    pusher = new Pusher("<key>", options);

    Log.i("PusherConnecting", "Connecting to Pusher");
    pusher.connect();
    Channel channel = pusher.subscribe("my-channel");

        channel.bind("my-event", new SubscriptionEventListener() {
            @Override
            public void onEvent(PusherEvent event) {

                try {

                    Log.i("PusherData", event.getData());
                }
                catch (Exception ex){
                    Log.i("Error", ex.getMessage());
                }

            }
        });
    } catch (Exception ex) {
        Toast.makeText(getApplicationContext(), ex.getMessage(), Toast.LENGTH_SHORT).show();
    }
}
PusherOptions选项=新的PusherOptions();
推手推手;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
试一试{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
选项。setCluster(“ap3”);
推送器=新推送器(“,选项);
日志i(“推进器连接”、“连接至推进器”);
pusher.connect();
频道=推送者。订阅(“我的频道”);
bind(“我的事件”,新SubscriptionEventListener(){
@凌驾
public void OneEvent(PusherEvent事件){
试一试{
Log.i(“PusherData”,event.getData());
}
捕获(例外情况除外){
Log.i(“错误”,例如getMessage());
}
}
});
}捕获(例外情况除外){
Toast.makeText(getApplicationContext(),例如getMessage(),Toast.LENGTH_SHORT).show();
}
}

这是关于活动销毁的,您可以使用onDestroy方法使其变得更好。查找以下活动的完整代码。您必须断开pusher onDestroy活动方法

 package com.example.pushertest;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
import android.widget.Toast;

import com.pusher.client.Pusher;
import com.pusher.client.PusherOptions;
import com.pusher.client.channel.Channel;
import com.pusher.client.channel.PusherEvent;
import com.pusher.client.channel.SubscriptionEventListener;
import com.pusher.client.connection.ConnectionEventListener;
import com.pusher.client.connection.ConnectionStateChange;

public class MainActivity extends AppCompatActivity {


PusherOptions options = new PusherOptions();

Pusher pusher ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    try {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    options.setCluster("ap3");
    pusher = new Pusher("<key>", options);

    Log.i("PusherConnecting", "Connecting to Pusher");
    pusher.connect();
    Channel channel = pusher.subscribe("my-channel");

        channel.bind("my-event", new SubscriptionEventListener() {
            @Override
            public void onEvent(PusherEvent event) {

                try {

                    Log.i("PusherData", event.getData());
                }
                catch (Exception ex){
                    Log.i("Error", ex.getMessage());
                }

            }
        });
    } catch (Exception ex) {
        Toast.makeText(getApplicationContext(), ex.getMessage(), Toast.LENGTH_SHORT).show();
    }
}

@Override
protected void onDestroy() {
    pusher.disconnect();
    android.os.Process.killProcess(android.os.Process.myPid());
    System.exit(1);
    super.onDestroy();
}
}
package com.example.pushertest;
导入androidx.appcompat.app.appcompat活动;
导入android.content.Intent;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.util.Log;
导入android.widget.EditText;
导入android.widget.Toast;
导入com.pusher.client.pusher;
导入com.pusher.client.pusher选项;
导入com.pusher.client.channel.channel;
导入com.pusher.client.channel.PusherEvent;
导入com.pusher.client.channel.SubscriptionEventListener;
导入com.pusher.client.connection.ConnectionEventListener;
导入com.pusher.client.connection.ConnectionStateChange;
公共类MainActivity扩展了AppCompatActivity{
PusherOptions options=新的PusherOptions();
推手推手;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
试一试{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
选项。setCluster(“ap3”);
推送器=新推送器(“,选项);
日志i(“推进器连接”、“连接至推进器”);
pusher.connect();
频道=推送者。订阅(“我的频道”);
bind(“我的事件”,新SubscriptionEventListener(){
@凌驾
public void OneEvent(PusherEvent事件){
试一试{
Log.i(“PusherData”,event.getData());
}
捕获(例外情况除外){
Log.i(“错误”,例如getMessage());
}
}
});
}捕获(例外情况除外){
Toast.makeText(getApplicationContext(),例如getMessage(),Toast.LENGTH_SHORT).show();
}
}
@凌驾
受保护的空onDestroy(){
推杆。断开();
android.os.Process.killProcess(android.os.Process.myPid());
系统出口(1);
super.ondestory();
}
}