2012-07-23 13 views
13

Udało mi się opracować jeden formularz logowania. Ale teraz nie jestem w stanie zarządzać sesją ... również przeczytałem więcej koncepcji sesji. Ale nie mogę tego zrobić. Proszę szczegółowo wyjaśnić. To jest mój kod. Pomóż, jak mogę wykorzystać część sesji tutaj.Jak zarządzać sesją w logowaniu/wylogowywaniu Androida?

To moja część kodowania:

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

Usługa internetowa, której używasz, masz dostęp do jej bazy kodów? lub musisz go użyć tak, jak jest? – Waqas

+0

Sprawdź ten link http://stackoverflow.com/questions/4224913/android-session-management –

+0

powyższy link nie jest pomocne dla me.please mi wyjaśnić w jaki sposób dodać sesji kodowania część kodowania jest mój udział. –

Odpowiedz

2

sprawdzić ten jeden .. to pomoże Ci utrzymać sesje w Androidzie

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

Android App Strategy for keeping track of a login session (ten link wyświetli wszystkie aspekty -terms utrzymywania sesji logowania/wylogowania

Myślę, że to pomoże ou.

+0

jest to przydatne dla zachowania nazwy użytkownika do czasu wylogowania, ale po wylogowaniu przycisku oznacza, że ​​jest to logowanie do aktywności. Wracam do mojej aktywności na moim emulatorze oznacza, że ​​jest wyświetlana wyświetlana nazwa użytkownika. Ale chcę, jeśli Wracam oznacza, że ​​jest przekierowanie do aktywności na logu .. tak, zarządzam sesją pojęć ... tak proszę wyjaśnij zarządzanie koncepcjami sesji po kliknięciu przycisku wylogowania również. –

12

Wyczyść stos czynności podczas wykonywania operacji wylogowania.

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

Następnie przycisk Wstecz pozostanie na stronie LoginActivity, ponieważ stos działań zostanie wyczyszczony. Myślę, że to ci pomoże.

1

Możesz wyczyścić swoją sesję jak jak

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

zadzwoń finish() raz przycisk logout kliknięciu sposób wykorzystania:

w zaproszeniu działalności ==>finish();

w zaproszeniu fragmentu = =>context.finish();

nadzieję, że pomaga.

+0

to rozwiązanie sprawdziło się bardzo dziękuję .. – EaBangalore

Powiązane problemy