Android - Session Management Tutorial

Session helfen Ihnen, wenn Benutzerdaten außerhalb der Anwendung zu speichern, so dass, wenn Sie das nächste Mal Nutzer verwenden Ihre Anwendung wünschen, können Sie leicht wieder seinen Einzelheiten und führen entsprechend.
Dies kann auf viele Arten erfolgen. Aber die einfachste und schönste Weg dies zu tun ist durch die Gemeinsame Einstellungen.

Gemeinschafts-Einstellungen

Gemeinschafts-Einstellungen können Sie in Form von Schlüssel-Wert-Paar zu speichern und Abrufen von Daten. Zur geteilten Einstellungen verwenden, müssen Sie sich auf ein Verfahren getSharedPreferences nennen (), die eine SharedPreference Instanz, die auf die Datei, die die Werte der Präferenzen zurückgibt.
SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
Sie können etwas in den sharedpreferences durch Verwendung SharedPreferences.Editor Klasse zu speichern. Sie werden die Bearbeitungsmethode SharedPreference Instanz aufrufen und es wird in einem Editor-Objekt zu erhalten. Die Syntax ist -
Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();
Abgesehen von der putString Verfahren gibt es Verfahren, in dem Editorklasse, die Manipulation der Daten in gemeinsam genutzten Präferenzen ermöglicht erhältlich. Sie werden wie folgt aufgeführt -
Sr.NoModus und Beschreibung
1apply ()
Es ist eine abstrakte Methode. Es werden Ihre Änderungen vom Editor in die sharedPreference Objekt Sie anrufen zurück zu begehen
2clear ()
Es werden alle Werte aus dem Editor zu entfernen
3zu entfernen (String key)
Es wird der Wert, dessen Schlüssel als Parameter übergeben worden zu entfernen
4putLong (String key, long-Wert)
Es wird ein langer Wert im Einstellungseditor speichern
5putInt (String key, int value)
Es wird ein Integer-Wert in einem Einstellungseditor speichern
6putFloat (String key, Float-Wert)
Es wird eine Float-Wert in einem Einstellungseditor speichern

Session Management durch gemeinsame Einstellungen

Um die Sitzungsverwaltung von gemeinsam genutzten Einstellungen durchführen, müssen wir die Werte oder Daten in gemeinsam genutzten Präferenzen in der gespeicherten überprüfen onResume Methode. Wenn wir die Daten nicht haben, werden wir die Anwendung von vorne beginnen, da es neu installiert. Aber wenn wir die Daten erhalten, werden wir von der, wo der Benutzer überlassen es zu starten. Es wird im folgenden Beispiel veranschaulicht:

Beispiel

Das folgende Beispiel demonstriert die Verwendung von Sitzungsverwaltung. Es Kästen einer einfachen Anwendung, die Sie zum ersten Mal anmelden können.Und dann, wenn Sie die Anwendung beenden, ohne sich abzumelden, werden Sie wieder an denselben Ort gebracht werden, wenn Sie die Anwendung erneut zu starten. Aber wenn man von der Anwendung abmelden, werden Sie zurück in das Hauptanmeldebildschirm gebracht werden.
Um bei diesem Beispiel zu experimentieren, müssen Sie diese auf einem Gerät oder einem Emulator laufen.
SchritteBezeichnung
1Sie werden Android Studio IDE verwenden, um ein Android-Anwendung unter einem Paket com.example.sairamkrishna.myapplication schaffen ;. Bei der Erstellung dieses Projekt, stellen Sie sicher SDK Ziel und Kompilieren Sie mit der neuesten Version des Android SDK zu höheren Ebenen der APIs verwenden.
2Ändern src / MainActivity.java-Datei, um die Fortschritte Code hinzufügen, um Session-Code hinzufügen.
3Erstellen Neue Aktivitäten und nennen es als second.java.Edit diese Datei, um die Fortschritte Code hinzufügen, um Session-Code hinzufügen.
4Ändern Sie Datei res / layout / activity_main.xml zum jeweiligen XML-Code hinzufügen.
5Ändern Sie Datei res / layout / second_main.xml zum jeweiligen XML-Code hinzufügen.
7Führen Sie die Anwendung, und wählen Sie einen laufenden Android-Gerät und installieren Sie die Anwendung und überprüfen Sie die Ergebnisse.
Hier beträgt der Gehalt an MainActivity.java.
package com.example.sairamkrishna.myapplication;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {
   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.class);
            startActivity(in);
         }
      });
   }
   
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.menu_main, menu);
      return true;
   }
   
   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      // Handle action bar item clicks here. The action bar will
      // automatically handle clicks on the Home/Up button, so long
      // as you specify a parent activity in AndroidManifest.xml.
      
      int id = item.getItemId();
      
      //noinspection SimplifiableIfStatement
      if (id == R.id.action_settings) {
         return true;
      }
      return super.onOptionsItemSelected(item);
   }
}
Hier beträgt der Gehalt an 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;

import static com.example.sairamkrishna.myapplication.R.id.button3;

/**
 * Created by Sairamkrishna on 4/7/2015.
 */
public class second 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();
   }
}
Hier beträgt der Gehalt an activity_main.xml.
<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>
Hier beträgt der Gehalt an activity_welcome.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>
Hier beträgt der Gehalt an strings.xml.
<resources>
   <string name="app_name">My Application</string>
   <string name="hello_world">Hello world!</string>
   <string name="action_settings">Settings</string>
</resources>
Hier beträgt der Gehalt an AndroidManifest.xml.
<? Xml version = "1.0" encoding = "utf-8" ?> 
<manifest  xmlns:android = "http://schemas.android.com/apk/res/android" 
   package = "com.example.sairamkrishna.myapplication"  >
   
   <application 
      android:allowBackup = "true" 
      android:icon = "@mipmap/ic_launcher" 
      android:label = "@string/app_name" 
      android:theme = "@style/AppTheme"  >
      
      <Aktivität 
         android: name = ".MainActivity" 
         android: label = "@ String /  app_name">
         
         <intent-filter> 
            <action  android:name = "android.intent.action.MAIN"  /> 
            <category  android:name = "android.intent.category.LAUNCHER"  /> 
         </intent-filter>
         
      </ Tätigkeit>
      
      <Aktivität  android: name = ".second"> </ Tätigkeit>
      
   </ application> 
</ manifest>
Lassen Sie uns versuchen, um Ihre Anwendung auszuführen. Ich nehme an, Sie AVD geschaffen hatte, während sie Umgebungskonfiguration. Um die App vom Android-Studio, öffnen Sie eine der Aktivität Dateien Ihres Projekt auszuführen, und klicken Sie auf Eclipse-Run IconAusführen-Symbol in der Werkzeugleiste. Android-Studio installiert die App auf Ihrem AVD und startet es und wenn alles in Ordnung ist mit der Einrichtung und Anwendung, wird es folgende Emulator-Fenster anzuzeigen -
Geben Sie Ihren Benutzernamen und Ihr Passwort ein (geben Sie, was Sie wollen, aber denken Sie daran, was Sie eingeben), und klicken Sie auf Login-Button. Es ist in der Abbildung unten dargestellt -
Anroid Session Management Tutorial
Sobald Sie auf Login-Button klicken, gelangen Sie zu dieser Begrüßungsbildschirm gebracht werden. Jetzt Ihren Login-Daten in gemeinsam genutzten Präferenzen gespeichert.
Anroid Session Management Tutorial
Klicken Sie nun auf Beenden ohne Logout Button und Sie werden würde als Bild unten gezeigt werden zurück zum Home-Bildschirm und den Vorzug gebracht Datei ausgegeben werden
Anroid Session Management Tutorial
Wenn Sie myPref.xml Datei als Notiz-Datei öffnen, wäre es wie folgt
Anroid Session Management Tutorial
Wenn Sie auf Logout-Button klicken, wird es Präferenzwerte zu löschen. und wenn Sie andere Werte als Eingänge eingegeben haben, wird es diese Werte als Präferenz in XML eingeben
Share on Google Plus

About ptjqatar

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.

0 التعليقات:

Kommentar veröffentlichen