Учебники

Android — Управление сессиями

Сеанс поможет вам, когда вы захотите сохранить пользовательские данные за пределами вашего приложения, чтобы при следующем использовании пользователем вашего приложения вы могли легко вернуть его данные и выполнить соответствующие действия.

Это можно сделать разными способами. Но самый простой и приятный способ сделать это — через Shared Preferences .

Общие настройки

Общие настройки позволяют сохранять и извлекать данные в виде пары ключ-значение. Чтобы использовать общие предпочтения, вы должны вызвать метод getSharedPreferences (), который возвращает экземпляр SharedPreference, указывающий на файл, который содержит значения предпочтений.

SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);	

Вы можете сохранить что-то в общих настройках с помощью класса SharedPreferences.Editor. Вы вызовете метод edit экземпляра SharedPreference и получите его в объекте редактора. Его синтаксис —

Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();

Помимо метода putString в классе редактора есть методы, которые позволяют манипулировать данными внутри общих настроек. Они перечислены следующим образом —

Sr.No Режим и описание
1

применять()

Это абстрактный метод. Он передаст ваши изменения обратно из редактора в объект sharedPreference, который вы вызываете

2

Чисто()

Это удалит все значения из редактора

3

удалить (ключ строки)

Это удалит значение, ключ которого был передан в качестве параметра

4

putLong (строковый ключ, длинное значение)

Это сохранит длинное значение в редакторе настроек

5

putInt (String key, int value)

Это сохранит целочисленное значение в редакторе настроек

6

putFloat (строковый ключ, значение с плавающей запятой)

Это сохранит значение с плавающей точкой в ​​редакторе настроек

применять()

Это абстрактный метод. Он передаст ваши изменения обратно из редактора в объект sharedPreference, который вы вызываете

Чисто()

Это удалит все значения из редактора

удалить (ключ строки)

Это удалит значение, ключ которого был передан в качестве параметра

putLong (строковый ключ, длинное значение)

Это сохранит длинное значение в редакторе настроек

putInt (String key, int value)

Это сохранит целочисленное значение в редакторе настроек

putFloat (строковый ключ, значение с плавающей запятой)

Это сохранит значение с плавающей точкой в ​​редакторе настроек

Управление сессиями через общие настройки

Чтобы выполнить управление сеансом из общих предпочтений, нам нужно проверить значения или данные, хранящиеся в общих предпочтениях, в методе onResume . Если у нас нет данных, мы запустим приложение с самого начала, поскольку оно только что установлено. Но если мы получили данные, мы начнем с того места, где их оставили пользователи. Это продемонстрировано в примере ниже —

пример

Приведенный ниже пример демонстрирует использование управления сеансами. Это базовое приложение, которое позволяет вам войти в первый раз. И затем, когда вы выходите из приложения без выхода из системы, вы будете возвращены в то же место, если вы запустите приложение снова. Но если вы выйдете из приложения, вы вернетесь на главный экран входа в систему.

Чтобы поэкспериментировать с этим примером, вам нужно запустить его на реальном устройстве или в эмуляторе.

меры Описание
1 Вы будете использовать Android Studio IDE для создания приложения Android в пакете com.example.sairamkrishna.myapplication.
2 Измените файл src / MainActivity.java, чтобы добавить код прогресса для добавления кода сеанса.
3 Создайте новую активность и назовите ее second.java. Измените этот файл, чтобы добавить код прогресса для добавления кода сеанса.
4 Измените файл res / layout / activity_main.xml, чтобы добавить соответствующий код XML.
5 Измените файл res / layout / second_main.xml, чтобы добавить соответствующий код XML.
7 Запустите приложение и выберите работающее устройство Android, установите на него приложение и проверьте результаты.

Вот содержание MainActivity.java .

package com.example.sairamkrishna.myapplication;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {
   EditText ed1,ed2,ed3;
   Button b1;
   Intent in;

   public static final String MyPREFERENCES = "MyPrefs" ;
   public static final String Name = "nameKey";
   public static final String Phone = "phoneKey";
   public static final String Email = "emailKey";
   SharedPreferences sharedpreferences;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      ed1=(EditText)findViewById(R.id.editText);
      ed2=(EditText)findViewById(R.id.editText2);
      ed3=(EditText)findViewById(R.id.editText3);

      b1=(Button)findViewById(R.id.button);
      sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            String n  = ed1.getText().toString();
            String ph  = ed2.getText().toString();
            String e  = ed3.getText().toString();

            SharedPreferences.Editor editor = sharedpreferences.edit();

            editor.putString(Name, n);
            editor.putString(Phone, ph);
            editor.putString(Email, e);
            editor.commit();

            in = new Intent(MainActivity.this,second_main.class);
            startActivity(in);
         }
      });
   }
}

Вот содержание second_main.java .

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class second_main extends Activity {
   Button bu=null;
   Button bu2=null;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.second_main);

      bu=(Button)findViewById(R.id.button2);
      bu2=(Button)findViewById(R.id.button3);
   }

   public  void logout(View view){
      SharedPreferences sharedpreferences = getSharedPreferences(MainActivity.MyPREFERENCES, Context.MODE_PRIVATE);
      SharedPreferences.Editor editor = sharedpreferences.edit();
      editor.clear();
      editor.commit();
   }

   public void close(View view){
      finish();
   }
}

Вот содержание activity_main.xml .

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Shared Preference"
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="35dp" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="35dp"
      android:textColor="#ff16ff01" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText"
      android:layout_below="@+id/textView2"
      android:layout_marginTop="67dp"
      android:hint="Name"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText2"
      android:layout_below="@+id/editText"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:hint="Pass" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText3"
      android:layout_below="@+id/editText2"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:hint="Email" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="login"
      android:id="@+id/button"
      android:layout_below="@+id/editText3"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="50dp" />

</RelativeLayout>

Вот содержание second_main.xml .

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical" android:layout_width="match_parent"
   android:layout_height="match_parent">
   
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Logout"
      android:onClick="logout"
      android:id="@+id/button2"
      android:layout_gravity="center_horizontal"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="191dp" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Close"
      android:onClick="close"
      android:id="@+id/button3"
      android:layout_below="@+id/button2"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="69dp" />

</RelativeLayout>

Вот содержимое Strings.xml .

<resources>
   <string name="app_name">My Application</string>
</resources>

Вот содержимое AndroidManifest.xml .

 <? xml version = "1.0" encoding = "utf-8"?>
 <manifest xmlns: android = "http://schemas.android.com/apk/res/android"
    package = "com.example.sairamkrishna.myapplication">
   
    <приложение
       андроид: allowBackup = "истина"
       Android: значок = "@ мипмап / ic_launcher"
       андроид: метка = "@ строка / app_name"
       android: theme = "@ style / AppTheme">
      
       <деятельность
          андроид: имя = "MainActivity"
          android: label = "@ string / app_name">
         
          <Намерения фильтр>
             <action android: name = "android.intent.action.MAIN" />
             <category android: name = "android.intent.category.LAUNCHER" />
          </ Намерение фильтр>
         
       </ Деятельность>
      
       <activity android: name = ". second"> </ activity>
      
    </ Приложение>
 </ Манифеста>

Давайте попробуем запустить ваше приложение. Я предполагаю, что вы создали свой AVD во время настройки среды. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». Eclipse Run Icon значок из панели инструментов. Android-студия устанавливает приложение на AVD и запускает его, и если все в порядке с настройкой и приложением, оно отобразится в следующем окне эмулятора —

Учебник по управлению сессиями Anroid

Введите свое имя пользователя и пароль (введите все, что вам нравится, но помните, что вы вводите) , и нажмите кнопку входа. Это показано на рисунке ниже —

Учебник по управлению сессиями Anroid

Как только вы нажмете кнопку входа, вы попадете на этот экран приветствия. Теперь ваша информация для входа хранится в общих настройках.

Учебник по управлению сессиями Anroid

Теперь нажмите кнопку « Выход без выхода» , и вы вернетесь на главный экран, а в файле настроек будет показано, как показано на рисунке ниже.

Учебник по управлению сессиями Anroid

Если вы откроете файл myPref.xml как файл заметок, это будет выглядеть следующим образом

Учебник по управлению сессиями Anroid

Если вы нажмете кнопку выхода, это приведет к удалению значений предпочтений. и если вы ввели разные значения в качестве входных данных, они будут вводиться как предпочтения в XML.