如果在android中的第一个活动中获得sessionid,如何维护活动之间的会话?

时间:2012-02-14 18:50:18

标签: android session

我正在尝试实现一个使用RESTFUL webservices的应用程序。

我在第一次活动中获得了会话ID。现在我需要在导航到其他活动时维护会话。现在我收到了接收的AUTHENTICATION CHALLEGE是空的。

任何人都可以帮助我吗?

我将sessionid从第一个活动传递给第二个活动。

我的第二项活动:

public class SetHome extends Activity {

String applicationId,sessionId;

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home);
    System.out.println("Entered thissss");

    applicationId = getIntent().getExtras().getString("applicationId");
    System.out.println("Application id is--->" + applicationId);

                 sessionId = getIntent().getExtras().getString("sessionId");
    System.out.println("SessionId is--->" + sessionId);


    HttpConnectionRequest conn = new HttpConnectionRequest();
    conn.execute();


}

private class HttpConnectionRequest extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... params) {
        // TODO Auto-generated method stub
        String url = "url/application/"
                + applicationId;

        try {
            WebServiceClient client = new WebServiceClient();
            HashMap<String, String> hm = new HashMap<String, String>();
            hm.put("CONTENT-TYPE", "application/xml");
            hm.put("Accept", "application/xml");
            String sessionId;

            String applicationId;

            WebServiceResponse res = client.doGet(new URL(url), hm);
            int resCode = res.getResponseCode();

            String response = res.getResponseContent();

            System.out.println(res);
                             */

        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }

}

public static String getValue(String xpath_expr, String xml) {
    return BaseUtil.xpath_result(xpath_expr, xml);
}

public void relay(View v) {

}

public void tasks(View v) {

}

public void applications(View v) {

    HttpConnectionRequest conn = new HttpConnectionRequest();
    conn.execute();

}
}

现在我收到了已接收的身份验证质询为空。

2 个答案:

答案 0 :(得分:0)

您可以使用多种方式。其中两种方式是:

  1. 你可以使用Intent.putExtras。(或者你可以使用Bundle并将该包放在Intent中)。
  2. 您可以使用sharedPreferences将数据永久保存为第一个活动,并且您可以在第二个活动中访问它。
  3. 第一点示例是here
  4. 第二点示例是here

答案 1 :(得分:0)

我建议你创建一个扩展Application的类。在那里创建公共变量,然后您可以从任何Activity获取MyApplicationClass app = (MyApplicationClass)getApplication(); app.myVariable;的变量。您还需要将该类名放在清单中的<application>标记中。 More info