2012-07-23 23 views
13

desarrollé con éxito un formulario de inicio de sesión. Pero ahora no puedo gestionar la sesión ... también he leído más conceptos de sesión. Pero no puedo hacerlo. Por favor, explíqueme en detalle. Este es mi código Por favor ayuda como puedo usar la parte de la sesión aquí.¿Cómo puedo administrar la sesión en el inicio/cierre de sesión de Android?

Esta es mi parte de codificación:

package com.androidlogin.ws; 

import org.ksoap2.SoapEnvelope; 
import org.ksoap2.serialization.PropertyInfo; 
import org.ksoap2.serialization.SoapObject; 
import org.ksoap2.serialization.SoapPrimitive; 
import org.ksoap2.serialization.SoapSerializationEnvelope; 
import org.ksoap2.transport.HttpTransportSE; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class AndroidLoginExampleActivity extends Activity { 
private final String NAMESPACE = "http://ws.userlogin.com"; 
private final String URL = "http://111.223.128.10:8085/AndroidLogin/services/Login?wsdl"; 
private final String SOAP_ACTION = "http://ws.userlogin.com/authentication"; 
private final String METHOD_NAME = "authentication"; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Button login = (Button) findViewById(R.id.btn_login); 
    login.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View arg0) { 
    loginAction(); 

    } 
    }); 
    } 

private void loginAction(){ 
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

    EditText userName = (EditText) findViewById(R.id.tf_userName); 
    String user_Name = userName.getText().toString(); 
    EditText userPassword = (EditText) findViewById(R.id.tf_password); 
    String user_Password = userPassword.getText().toString(); 

    //Pass value for userName variable of the web service 
    PropertyInfo unameProp =new PropertyInfo(); 
    unameProp.setName("userName");//Define the variable name in the web service method 
    unameProp.setValue(user_Name);//set value for userName variable 
    unameProp.setType(String.class);//Define the type of the variable 
    request.addProperty(unameProp);//Pass properties to the variable 

    //Pass value for Password variable of the web service 
    PropertyInfo passwordProp =new PropertyInfo(); 
    passwordProp.setName("password"); 
    passwordProp.setValue(user_Password); 
    passwordProp.setType(String.class); 
    request.addProperty(passwordProp); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.setOutputSoapObject(request); 
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 

    try{ 
     androidHttpTransport.call(SOAP_ACTION, envelope); 
      SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 

      TextView result = (TextView) findViewById(R.id.tv_status); 
      result.setText(response.toString()); 

    } 
    catch(Exception e){ 

    } 
    } 

    } 
+0

El servicio web que consume, ¿tiene acceso a su base de código? o tienes que usarlo tal como es? – Waqas

+0

verificación de este enlace http://stackoverflow.com/questions/4224913/android-session-management –

+0

el enlace anterior no es útil para me.please a explicar cómo se añada sesión de parte de codificación es mi parte de codificación. –

Respuesta

2

comprobar éste .. que le ayudará a mantener sesiones en Android

https://stackoverflow.com/a/6112799/1358004

Android App Strategy for keeping track of a login session (Este enlace se mostrará en todos los aspectos -terms de mantenimiento de sesiones para iniciar/cerrar sesión.

Supongo que ayudará UNED.

+0

es útil para mantener el nombre de usuario hasta el cierre de sesión ... pero después del botón de cierre de sesión significa que es ir a la actividad de inicio de sesión. Ahora volveré a mi actividad en mi emulador significa que se muestra la actividad de nombre de usuario mostrada. volveré significa que se redirige a la actividad de inicio de sesión ... así que aquí administraré los conceptos de la sesión ... así que explique los conceptos de la sesión de gestión después de hacer clic en el botón de cerrar sesión también. –

12

Elimina la pila de actividad al cerrar la sesión.

Intent intent = new Intent(this, LoginActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

Luego, el botón Atrás permanecerá en LoginActivity ya que se borra la pila de actividades. Supongo que te ayudará.

1

Puede borrar la sesión como lo

MySession session = MySession .getInstance(MainActivity.this); 
        session.clear(); 
        Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
        startActivity(intent); 
        finish(); 
1

sólo llamar finish() una vez que el botón se hace clic en logout manera de utilizar:

en la actividad de llamadas ==>finish();

en la llamada fragmento = =>context.finish();

espero que ayude.

+0

esta solución funcionó para mí muchas gracias .. – EaBangalore

Cuestiones relacionadas