Как сохранить сеанс между действиями, если sessionid получен в первом действии в Android? - PullRequest
0 голосов
/ 14 февраля 2012

Я пытаюсь реализовать приложение, которое использует веб-сервисы RESTFUL.

Я получил свой идентификатор сессии в моей первой деятельности. Теперь мне нужно поддерживать сеанс, когда я перехожу к другим действиям. Теперь я получаю ЗАПРОС АУТЕНТИФИКАЦИИ НЕДЕЙСТВИТЕЛЕН.

Кто-нибудь может мне помочь?

Я передаю 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 голосов
/ 14 февраля 2012

Я бы порекомендовал вам создать класс, который расширяет Application. Сделайте публичную переменную тут же, и затем вы можете получить эту переменную с MyApplicationClass app = (MyApplicationClass)getApplication(); app.myVariable; из любого Activity. Вам также необходимо поместить это имя класса в тег <application> в манифесте. Подробнее

0 голосов
/ 14 февраля 2012

Вы можете использовать много способов. Два из них:

  1. вы можете использовать Intent.putExtras. (Или вы можете использовать Bundle и поместить этот пакет в Intent).
  2. Вы можете использовать sharedPreferences для постоянного размещения данных в первом действии, и вы можете получить доступ к ним во втором действии.
  3. Пример первой точки: здесь
  4. Пример второй точки: здесь
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...