2012-07-23 7 views
13

1つのログインフォームを開発しました。しかし、今私はセッションを管理することができません...また、私はそれを行うことはできませんより多くのセッションconcepts.butを読んだ。詳細を私を説明してください。これは私のコードです。ここでセッション部分をどのように使用できるかお手伝いしてください。Androidログイン/ログアウトでセッションを管理するにはどうすればよいですか?

これは私のコーディング一部です:

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

あなたが消費しているWebサービスは、そのコードベースにアクセスできますか?またはあなたはそれが彼らの方法でそれを使用する必要がありますか? me.pleaseは一部をコーディングすることは、私のコーディング部分でセッションを追加する方法を私に説明するために – Waqas

+0

チェックこのリンク http://stackoverflow.com/questions/4224913/android-session-management –

+0

上記のリンクは有用ではありません。 –

答えて

2

チェックこの1 .. それはあなたが

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

Android App Strategy for keeping track of a login sessionは、(このリンクは内のすべての側面を表示するAndroidの中でセッションを維持するのに役立ちますログイン/ログアウトのセッションを維持する -

私はy ou。

+0

ログアウトするまでユーザ名を保存すると便利です。しかし、ログアウトボタンを押すとアクティビティに移動します。エミュレータのアクティビティに戻ると、表示されているユーザ名activity.butが表示されます。戻ってくると、ログインアクティビティにリダイレクトされます。セッションコンセプトを管理しますので、クリックした後のセッションコンセプトについても説明してください。 –

12

ログアウト操作中にアクティビティスタックをクリアします。

アクティビティスタックがクリアされているため、戻るボタンはLoginActivityのままになります。 それはあなたに役立つと思います。

1

あなたは

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

logoutボタンがクリックされると、単に使用する方法finish()を呼び出すようようなあなたのセッションをクリアすることができます:フラグメントコールの活動コールで

==>finish();

= =>context.finish();

希望するものがあります。

+0

このソリューションは私のために働いてくれてありがとう.. – EaBangalore

関連する問題