2012-07-23 37 views
13

我成功开发了一个登录表单。但现在我无法管理会议......我也阅读了更多会议的概念,但我无法做到。请详细解释我。这是我的代码。请帮助我如何在这里使用Session部分。如何在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 2012-07-23 05:05:41

+0

检查此链接 http://stackoverflow.com/questions/4224913/android-session-management – 2012-07-23 05:12:57

+0

上面的链接是没有帮助的是如何增加会话编码部分是我的编码部分。 – 2012-07-23 05:20:19

回答

2

检查这一个.. 它会帮助你保持会话中的Android

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

Android App Strategy for keeping track of a login session(此链接将显示所有方面 - 维护会话登录/注销的条款。

我想它会帮助y OU。

+0

这是有用的保持用户名,直到登出..但注销后按钮意味着它是去登录activity.now我会回到我的活动在我的模拟器意味着它显示的用户名activity.but但我希望如果我需要我们将返回意味着它重定向到登录活动..因此,这里将管理会话概念..所以请单击注销按钮之后解释管理会话概念。 – 2012-07-23 06:55:17

12

执行注销操作时清除活动堆栈。

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

然后后退按钮将停留在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

就叫finish()一旦logout按钮被点击的方式来使用会话:

在活动通话==>finish();

在片段通话

= =>context.finish();

希望有帮助。

+0

这个解决方案对我很有帮助,非常感谢.. – EaBangalore 2016-11-07 05:25:10