Java 推送器在一次推送中复制并接收多个数据
我正在使用pusher,当android活动重新启动时,当我触发pusher调试控制台进行push时,我的pusher连接将复制值2,3,4次。下面是代码示例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
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();
}
}