2017-01-17 13 views
0

я прохожу значение службы как этогодержать сервис работает с теми же параметрами

MyService.user = new ChatUser(task.getResult().getUser().getUid(),task.getResult().getUser().getDisplayName(), task.getResult().getUser().getEmail(), password, true, ""); 
         Intent intent = new Intent(Login.this, MyService.class); 
         startService(intent); 

При уничтожении приложения служба продолжает работать с флагом START_REDELIVER_INTENT, но пользователь, что я прошел становится нулевым

Как сохранить значение от возврата до нуля

+0

Дон» t хранить его в статическом поле –

+0

'Я передаю значение сервису вроде этого' - вы ничего не передаете в свою службу. –

+0

@TimCastelijns, если я не храню в статике i can not pass it –

ответ

1

Вы создаете неверную информацию об услуге. Правильные шаги:

  1. Создайте намерение и добавить необходимые значения для него, как это:

    Intent intent = new Intent(this, Service.class); 
        intent.putExtra("uid_key", task 
          .getResult() 
          .getUser() 
          .getUid()); 
        intent.putExtra("display_name_key", task 
          .getResult() 
          .getUser() 
          .getDisplayName())); 
        startService(intent); 
    
  2. В вашей службы:

    . 
    . 
    . 
    
    ChatUser myChatUser; 
    
    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
        if (intent.getExtras() != null){ 
         String uid = intent.getStringExtra("uid_key"); 
         String displayName = intent.getStringExtra("display_name_key"); 
    
         if (uid !=null && displayName != null){ 
          myChatUser = new ChatUser(uid, displayName); 
         } 
        } 
    
    
        return START_REDELIVER_INTENT; 
    } 
    }