после привязки сервиса обратные вызовы не работают - PullRequest
0 голосов
/ 29 августа 2018
private void bindMyService() {

    conn = new ServiceConnection() {
        @Override
        public void onServiceDisconnected(ComponentName name) {

        }

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            myservice = ((MyService) service).getService();
            myservice.setCallBack((type, payload) -> {
                   Log.i("INDEX", "msg,type:"+type);
                switch (type) {
                    case 1:
                        handler.post(() -> {
                              updateUIData();
                            }
                        });   
                        break;
                    case 2:
                       handler.post(()->updateOtherUIData());
                        break;

                }
            });
        }
    };

    Intent intent = new Intent(this, MyService.class);
    bindService(intent, conn, Context.BIND_AUTO_CREATE);

}

этот метод будет вызываться, когда onCreate (). При запуске приложения метод updateUIData () работает нормально, но когда я заканчиваю () действие и снова startActivity (), метод bindMyService () все еще работает, но с обратным вызовом больше не работает. Журнал показывает, что обратный вызов вызван, но метод updateUIData () не может работать; кажется, что в обратном вызове активность все еще та, которую я заканчиваю () раньше, но не та, которую я создаю by startActivity ();

protected void onDestroy() {
    Log.i("INDEX", "logout");
    unbindService(conn);
    handler = null;
    conn = null;
    every variable  =null;
    super.onDestroy();

}

НЕТ ОШИБОК в logcat, где ошибка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...