【问题标题】:Pusher duplicates and receive multiple data in single pushPusher 在单次推送中复制并接收多个数据
【发布时间】:2020-05-22 00:01:30
【问题描述】:

我正在使用推送器,当 android 活动重新启动时,当我触发推送器调试控制台推送时,我的推送器连接重复值 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();
    }
}

【问题讨论】:

    标签: java android android-studio pusher


    【解决方案1】:

    这是关于活动销毁的,您可以使用 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();
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 2014-02-24
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      相关资源
      最近更新 更多