Usando o putExtra para passar valores para o serviço intencional

dentro da minha atividade principal eu tenho o seguinte código:

EditText usernameText;
EditText passwordText;
public void sendLogin (View loginview){
    Intent i = new Intent(this, NetworkService.class);
    startService(i);
}

Atualmente, isso apenas envia uma intenção para o NetworkService, que é tratado da seguinte maneira (truncado):

public class NetworkService extends IntentService {

    public NetworkService() {
        super("NetworkService");
    }

    protected void onHandleIntent(Intent i) {

        /* HTTP CONNECTION STUFF */

        String login = URLEncoder.encode("Username", "UTF-8") + "=" + URLEncoder.encode("XXX", "UTF-8");
        login += "&" + URLEncoder.encode("Password", "UTF-8") + "=" + URLEncoder.encode("XXX", "UTF-8"); 
    }
}

Agora, o que eu preciso descobrir é como passar essesusernameText epasswordText valores até oNetworkService no 'XXX', mas TAMBÉM dentro doNetworkService, Pretendo (sem trocadilhos) lidar com várias intenções de vários lugares, uma de um login, uma de recuperar algumas informações sobre usuários usando o token de logon, por exemplo. É onde toda a minha rede será contida. Fui instruído que essa era a melhor prática dentro dos aplicativos do Android, para manter a rede separada.

Minha pergunta é: Qual é a melhor maneira de enviar essas duas variáveis ​​para oNetworkService e também como, dentro doonHandleIntent doNetworkService, separo o código para fazer apenas o que estou pedindo (login, buscar informações do usuário, buscar dados de localização, etc)?

Desculpe se a resposta é simples, mas sou muito novo na programação de aplicativos.

obrigado

questionAnswers(2)

yourAnswerToTheQuestion