2012-07-23 11 views
13

ho sviluppato con successo un modulo di accesso. Ma ora non sono in grado di gestire la sessione ... inoltre ho letto più concetti di sessione. Ma non posso farlo. Per favore, spiegami in dettaglio. Questo è il mio codice Si prega di aiutare come posso usare la parte Sessione qui.Come posso gestire la sessione in accesso/logout Android?

Questa è la mia parte di codifica:

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

Il servizio Web che si sta consumando, si ha accesso alla sua base di codice? o devi usarlo così com'è? – Waqas

+0

controllare questo link http://stackoverflow.com/questions/4224913/android-session-management –

+0

il link qui sopra non è utile per me.please spiegare come è aggiungere sessione codificante è la mia parte di codifica. –

risposta

2

controllo questo .. vi aiuterà a mantenere le sessioni in Android

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

Android App Strategy for keeping track of a login session (questo link per visualizzare tutti gli aspetti in -terms di mantenere le sessioni per il login/logout

Suppongo che ti aiuterà ou.

+0

è utile per mantenere il nome utente fino al logout..ma dopo il pulsante di logout significa che è andare a login activity.now tornerò alla mia attività sul mio emulatore significa che viene visualizzato il nome utente visualizzato activity.but mi piacerebbe aver bisogno se io Tornerò indietro significa che si sta reindirizzando l'attività di login..so qui gestirò i concetti di sessione..perché, per favore, spiega anche la gestione dei concetti di sessione dopo aver fatto clic sul pulsante di disconnessione. –

12

Cancella stack di attività quando si esegue l'operazione di disconnessione.

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

Poi di nuovo il tasto rimarrà al LoginActivity poiché la pila di attività viene cancellata. Immagino che ti aiuterà.

1

È possibile cancellare la sessione come come

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

basta chiamare finish() una volta il tasto logout si fa clic modo per usare:

in attività di chiamata ==>finish();

in call frammento = =>context.finish();

speranza che aiuti.

+0

questa soluzione ha funzionato per me grazie mille .. – EaBangalore

Problemi correlati