Android - Manajemen Sesi
Sesi membantu Anda saat ingin menyimpan data pengguna di luar aplikasi Anda, sehingga saat pengguna menggunakan aplikasi Anda di lain waktu, Anda dapat dengan mudah mendapatkan kembali detailnya dan melakukan yang sesuai.
Ini bisa dilakukan dengan banyak cara. Tetapi cara termudah dan terindah untuk melakukan ini adalah melaluiShared Preferences.
Preferensi Bersama
Preferensi Bersama memungkinkan Anda untuk menyimpan dan mengambil data dalam bentuk kunci, pasangan nilai. Untuk menggunakan preferensi bersama, Anda harus memanggil metode getSharedPreferences () yang mengembalikan instance SharedPreference yang mengarah ke file yang berisi nilai-nilai preferensi.
SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
Anda dapat menyimpan sesuatu di sharedpreferences dengan menggunakan kelas SharedPreferences.Editor. Anda akan memanggil metode edit dari instance SharedPreference dan akan menerimanya di objek editor. Sintaksnya adalah -
Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();
Selain metode putString, ada metode yang tersedia di kelas editor yang memungkinkan manipulasi data di dalam preferensi bersama. Mereka terdaftar sebagai berikut -
Sr Tidak | Mode & deskripsi |
---|---|
1 | apply() Ini adalah metode abstrak. Ini akan mengembalikan perubahan Anda dari editor ke objek sharedPreference yang Anda panggil |
2 | clear() Ini akan menghapus semua nilai dari editor |
3 | remove(String key) Ini akan menghapus nilai yang kuncinya telah diteruskan sebagai parameter |
4 | putLong(String key, long value) Ini akan menghemat nilai panjang di editor preferensi |
5 | putInt(String key, int value) Ini akan menyimpan nilai integer di editor preferensi |
6 | putFloat(String key, float value) Ini akan menyimpan nilai float di editor preferensi |
Manajemen Sesi melalui Preferensi Bersama
Untuk melakukan manajemen sesi dari preferensi bersama, kita perlu memeriksa nilai atau data yang disimpan dalam preferensi bersama di onResumemetode. Jika kami tidak memiliki datanya, kami akan memulai aplikasi dari awal karena baru diinstal. Tetapi jika kita mendapatkan datanya, kita akan mulai dari tempat pengguna meninggalkannya. Ini ditunjukkan pada contoh di bawah -
Contoh
Contoh di bawah ini menunjukkan penggunaan Manajemen Sesi. Ini berisi aplikasi dasar yang memungkinkan Anda masuk untuk pertama kalinya. Dan kemudian ketika Anda keluar dari aplikasi tanpa logout, Anda akan dibawa kembali ke tempat yang sama jika Anda memulai aplikasi lagi. Tetapi jika Anda keluar dari aplikasi, Anda akan dibawa kembali ke layar masuk utama.
Untuk bereksperimen dengan contoh ini, Anda perlu menjalankannya di perangkat sebenarnya atau di emulator.
Langkah | Deskripsi |
---|---|
1 | Anda akan menggunakan IDE studio android untuk membuat aplikasi Android di bawah paket com.example.sairamkrishna.myapplication. |
2 | Ubah file src / MainActivity.java untuk menambahkan kode kemajuan untuk menambahkan kode sesi. |
3 | Buat Aktivitas Baru dan beri nama sebagai second.java. Edit file ini untuk menambahkan kode kemajuan untuk menambahkan kode sesi. |
4 | Ubah file res / layout / activity_main.xml untuk menambahkan kode XML masing-masing. |
5 | Ubah file res / layout / second_main.xml untuk menambahkan kode XML masing-masing. |
7 | Jalankan aplikasi dan pilih perangkat android yang sedang berjalan dan instal aplikasi di atasnya dan verifikasi hasilnya. |
Berikut adalah konten dari 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);
}
});
}
}
Berikut adalah konten dari 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();
}
}
Berikut adalah konten dari 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>
Berikut adalah konten dari 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>
Berikut adalah konten dari Strings.xml.
<resources>
<string name="app_name">My Application</string>
</resources>
Berikut adalah konten dari 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" >
<activity
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>
</activity>
<activity android:name=".second"></activity>
</application>
</manifest>
Mari coba jalankan aplikasi Anda. Saya berasumsi bahwa Anda telah membuat AVD saat melakukan pengaturan lingkungan. Untuk menjalankan aplikasi dari Android studio, buka salah satu file aktivitas proyek Anda dan klik
Ketik nama pengguna dan kata sandi Anda (type anything you like, but remember what you type), dan klik tombol masuk. Itu ditunjukkan pada gambar di bawah -
Segera setelah Anda mengklik tombol login, Anda akan dibawa ke layar Selamat Datang ini. Sekarang informasi login Anda disimpan dalam preferensi bersama.
Sekarang klik Exit without logout tombol dan Anda akan dibawa kembali ke layar beranda dan file preferensi yang dikeluarkan akan seperti yang ditunjukkan di bawah gambar
Jika Anda membuka file myPref.xml sebagai file catatan, itu akan menjadi sebagai berikut
Jika Anda mengklik tombol logout, itu akan menghapus nilai preferensi. dan jika Anda memasukkan nilai yang berbeda sebagai masukan, nilai tersebut akan dimasukkan sebagai preferensi dalam XML.