Android - सत्र प्रबंधन
जब आप अपने एप्लिकेशन के बाहर उपयोगकर्ता डेटा संग्रहीत करना चाहते हैं, तो सत्र आपकी सहायता करता है, ताकि जब अगली बार उपयोगकर्ता आपके एप्लिकेशन का उपयोग करे, तो आप आसानी से उसका विवरण प्राप्त कर सकें और तदनुसार प्रदर्शन कर सकें।
यह कई तरीकों से किया जा सकता है। लेकिन ऐसा करने का सबसे आसान और अच्छा तरीका हैShared Preferences।
वरीयताएँ साझा की
साझा प्राथमिकताएं आपको कुंजी, मूल्य जोड़ी के रूप में डेटा को सहेजने और पुनर्प्राप्त करने की अनुमति देती हैं। साझा प्राथमिकताओं का उपयोग करने के लिए, आपको एक विधि getSaredPreferences () को कॉल करना होगा जो कि साझा करने के लिए शेयर्डप्रिफरेंस उदाहरण लौटाता है जिसमें वरीयताएँ शामिल हैं।
SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
शेयर्डप्रिफरेंस.ईडिटर वर्ग का उपयोग करके आप साझाकरण में कुछ बचा सकते हैं। आप SharedPreference आवृत्ति का संपादन विधि कहेंगे और इसे एक संपादक ऑब्जेक्ट में प्राप्त करेंगे। इसका वाक्य विन्यास है -
Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();
पुटस्ट्रिंग विधि के अलावा, संपादक वर्ग में उपलब्ध विधियां हैं जो साझा प्राथमिकताओं के अंदर डेटा के हेरफेर की अनुमति देती हैं। वे इस प्रकार सूचीबद्ध हैं -
अनु क्रमांक | मोड और विवरण |
---|---|
1 | apply() यह एक अमूर्त विधि है। यह संपादक से आपके द्वारा साझा किए जा रहे साझा ऑब्जेक्ट पर आपके परिवर्तनों को वापस करेगा |
2 | clear() यह संपादक से सभी मूल्यों को हटा देगा |
3 | remove(String key) यह उस मान को हटा देगा जिसकी कुंजी को पैरामीटर के रूप में पारित किया गया है |
4 | putLong(String key, long value) यह एक वरीयता संपादक में एक लंबे मूल्य को बचाएगा |
5 | putInt(String key, int value) यह वरीयता संपादक में पूर्णांक मान को बचाएगा |
6 | putFloat(String key, float value) यह एक वरीयता संपादक में एक फ्लोट मूल्य को बचाएगा |
साझा प्राथमिकता के माध्यम से सत्र प्रबंधन
साझा प्राथमिकताओं से सत्र प्रबंधन करने के लिए, हमें साझा प्राथमिकताओं में संग्रहीत मूल्यों या डेटा की जांच करने की आवश्यकता है onResumeतरीका। यदि हमारे पास डेटा नहीं है, तो हम शुरुआत से ही आवेदन शुरू कर देंगे क्योंकि यह नया है। लेकिन अगर हमें डेटा मिला है, तो हम उसी जगह से शुरू करेंगे जहां उपयोगकर्ता ने इसे छोड़ा था। यह नीचे दिए गए उदाहरण में दिखाया गया है -
उदाहरण
नीचे का उदाहरण सत्र प्रबंधन के उपयोग को दर्शाता है। यह एक मूल एप्लिकेशन देता है जो आपको पहली बार लॉगिन करने की अनुमति देता है। और फिर जब आप एप्लिकेशन को लॉग आउट किए बिना बाहर निकलते हैं, तो आपको फिर से आवेदन शुरू करने पर उसी स्थान पर वापस लाया जाएगा। लेकिन यदि आप एप्लिकेशन से लॉगआउट करते हैं, तो आपको मुख्य लॉगिन स्क्रीन पर वापस लाया जाएगा।
इस उदाहरण के साथ प्रयोग करने के लिए, आपको इसे वास्तविक डिवाइस पर या एमुलेटर में चलाने की आवश्यकता है।
कदम | विवरण |
---|---|
1 | पैकेज com.example.sairamkrishna.myapplication के तहत Android एप्लिकेशन बनाने के लिए आप Android स्टूडियो IDE का उपयोग करेंगे। |
2 | सत्र कोड जोड़ने के लिए प्रगति कोड जोड़ने के लिए src / MainActivity.java फ़ाइल को संशोधित करें। |
3 | नई गतिविधि बनाएँ और इसे दूसरा नाम दें। सत्र कोड जोड़ने के लिए प्रगति कोड जोड़ने के लिए इस फ़ाइल को संपादित करें। |
4 | संबंधित XML कोड जोड़ने के लिए Res / लेआउट / activity_main.xml फ़ाइल को संशोधित करें। |
5 | संबंधित XML कोड जोड़ने के लिए Res / लेआउट / second_main.xml फ़ाइल संशोधित करें। |
7 | एप्लिकेशन चलाएं और एक रनिंग एंड्रॉइड डिवाइस चुनें और उस पर एप्लिकेशन इंस्टॉल करें और परिणामों को सत्यापित करें। |
यहाँ की सामग्री है 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" >
<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>
आइए अपने एप्लिकेशन को चलाने का प्रयास करें। मुझे लगता है कि आपने पर्यावरण सेटअप करते समय अपना AVD बनाया था। एंड्रॉइड स्टूडियो से ऐप को चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक खोलें और
अपने उपयोगकर्ता नाम और पासवर्ड में टाइप करें (type anything you like, but remember what you type), और लॉगिन बटन पर क्लिक करें। यह नीचे दी गई छवि में दिखाया गया है -
जैसे ही आप लॉगिन बटन पर क्लिक करेंगे, आपको इस वेलकम स्क्रीन पर लाया जाएगा। अब आपकी लॉगिन जानकारी साझा प्राथमिकताओं में संग्रहीत है।
अब पर क्लिक करें Exit without logout बटन और आपको होम स्क्रीन पर वापस लाया जाएगा और पुट आउट फाइल को नीचे दी गई छवि के अनुसार दिखाया जाएगा
यदि आप नोट फ़ाइल के रूप में myPref.xml फ़ाइल खोलते हैं, तो यह निम्नानुसार होगा
यदि आप लॉगआउट बटन पर क्लिक करते हैं, तो यह वरीयता मानों को मिटा देगा। और यदि आपने विभिन्न मानों को इनपुट के रूप में दर्ज किया है, तो यह XML में उन मानों को वरीयता के रूप में दर्ज करेगा।