Session در برنامه نویسی اندروید

3 سال پیش

Session در برنامه نویسی اندروید

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، در مورد Session در برنامه نویسی اندروید صحبت خواهیم کرد.

 

Session هنگامی که می خواهید داده های کاربر را در خارج از برنامه خود ذخیره کنید به شما کمک می کند، بنابراین وقتی دفعه بعد کاربر از برنامه شما استفاده می کند، می توانید به راحتی جزئیات اطلاعات او را ارائه بدهید و مطابق با آن عمل کنید.

Session در برنامه نویسی اندروید به طرق مختلف قابل انجام است.

اما ساده ترین و بهترین راه برای انجام این کار از طریق Shared Preferences است.

Shared Preferences

Shared Preferences به شما امکان می دهد داده ها را به صورت زوج کلید، مقدار ذخیره و بازیابی کنید.

برای استفاده از Shared Preferences، شما باید یک متد ()getSharedPreferences  را فراخوانی کنید که یک نمونه SharedPreference را به پرونده ای که حاوی مقادیر تنظیمات است نشان می دهد.

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

با استفاده از کلاس SharedPreferences.Editor می توانید چیزی را در Shared Preferences ذخیره کنید.

شما متد ویرایش SharedPreference را فراخوانی خواهید کرد و آن را در یک شی editor دریافت خواهید کرد.

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

جدا از متد putString، متد هایی در کلاس editor موجود است که امکان دستکاری داده ها را درShared Preference فراهم می کند. آنها به شرح زیر ذکر شده اند:

  •  ()apply

این یک متد انتزاعی است. این تغییرات شما را از editor به شی مشترک sharedPreference  که شما فراخوانی می کنید، اعمال می کند

  •  ()clear

همه مقادیر را از editor حذف می کند

  • (remove(String key

مقداری که کلید آن به عنوان یک پارامتر ارسال شده است را حذف می کند

  • (putLong(String key, long value

این مقدار طولانی را در یک preference editor ذخیره می کند

  • (putInt(String key, int value

این یک مقدار صحیح را در یک preference editor ذخیره می کند

  • (putFloat(String key, float value

این مقدار float را در یک preference editor ذخیره می کند

 

مدیریت Session از طریق Shared Preferences

برای انجام مدیریت Session از طریق Shared Preferences، باید مقادیر یا داده های ذخیره شده در Shared Preferences را در روش onResume بررسی کنیم.

اگر داده ای نداشته باشیم، همانطور که تازه نصب شده است، برنامه را از ابتدا شروع می کنیم.

اما اگر داده ها را بدست آوریم، از محلی که کاربر آن را ترک کرده شروع می کنیم.

مثال

مثال زیر استفاده از مدیریت Session را نشان می دهد. این برنامه به شما امکان می دهد برای اولین بار وارد سیستم شوید. و سپس هنگامی که بدون ورود به سیستم از برنامه خارج می شوید، اگر دوباره برنامه را شروع کنید ، به همان مکان بازگردانده می شوید. اما اگر از برنامه خارج شوید، به صفحه اصلی ورود باز خواهید گشت.

برای آزمایش این مثال، باید این مورد را روی دستگاه واقعی یا شبیه ساز اجرا کنید.

شرح مراحل 

۱- برای ایجاد یک برنامه اندروید تحت یک پکیج com.example.sairamkrishna.myapplication از android studio IDE استفاده خواهید کرد.
۲- برای افزودن کد پیشرفت برای افزودن کد Session، فایل src / MainActivity.java را تغییر دهید.
۳- New Activity ایجاد کنید و نام آن را second.java بگذارید. برای افزودن کد پیشرفت برای افزودن کد Session، این فایل را ویرایش کنید.
۴- برای اضافه کردن کد XML مربوطه ، فایل res / layout / activity_main.xml را تغییر دهید.
۵- برای اضافه کردن کد XML مربوطه ، فایل res / layout / second_main.xml را تغییر دهید.
۷- برنامه را اجرا کنید و دستگاه اندرویدی در حال اجرا را انتخاب کنید و برنامه را روی آن نصب کنید و نتایج را بررسی کنید.

در اینجا محتوای 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 خود را هنگام راه اندازی محیط ایجاد کرده اید. برای اجرای برنامه از Android studio، یکی از پرونده های فعالیت پروژه خود را باز کنید و از نوار ابزار روی Android StudioRun Icon کلیک کنید. Android Studio برنامه را روی AVD شما نصب کرده و شروع به کار می کند و اگر با تنظیمات و برنامه هایتان همه چیز خوب باشد، زیر پنجره شبیه ساز نمایش داده می شود.

نام کاربری و رمز عبور خود را وارد کنید (هر آنچه را دوست دارید تایپ کنید، اما آنچه را تایپ می کنید به خاطر بسپارید) و بر روی دکمه ورود کلیک کنید. در تصویر زیر نشان داده شده است:

به محض کلیک بر روی دکمه ورود به سیستم، به این صفحه خوش آمدید آورده می شوید. اکنون اطلاعات ورود به سیستم شما در shared preferences ذخیره می شود.

اکنون بر روی دکمه Exit without logout کلیک کنید و دوباره به صفحه اصلی باز خواهید گشت و در فایل preference مانند تصویر زیر قرار داده می شود

اگر پرونده myPref.xml را به عنوان فایل note باز کنید، به شرح زیر خواهد بود

اگر روی دکمه logout کلیک کنید، مقادیر preference را پاک می کند. و اگر مقادیر مختلفی را به عنوان ورودی وارد کنید، آن مقادیر را به عنوان اولویت در XML وارد می کند.

 

منبع.

لیست جلسات قبل آموزش برنامه نویسی اندروید

    1. نگاهی کلی به برنامه نویسی اندروید
    2. تنظیمات محیط  در برنامه نویسی اندروید
    3. معماری برنامه نویسی اندروید
    4. اجزای برنامه در برنامه نویسی اندروید
    5. Hello World در برنامه نویسی اندروید
    6. سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
    7. فعالیت در برنامه نویسی اندروید
    8. سرویس در برنامه نویسی اندروید
    9. گیرنده های پخش در برنامه نویسی اندروید
    10. ارائه دهنده محتوا در برنامه نویسی اندروید
    11. قطعات در برنامه نویسی اندروید
    12. Intent و فیلتر در برنامه نویسی اندروید
    13. طرح بندی رابط کاربری در برنامه نویسی اندروید
    14. کنترل های رابط کاربری در برنامه نویسی اندروید
    15. مدیریت رویدادها در برنامه نویسی اندروید
    16. استایل و تم ها در برنامه نویسی اندروید
    17. اجزای سفارشی در برنامه نویسی اندروید
    18. کشیدن و رها کردن در برنامه نویسی اندروید
    19. نوتیفیکیشن ها در برنامه نویسی اندروید
    20. سرویس های مبتنی بر مکان در برنامه نویسی اندروید
    21. ارسال ایمیل در برنامه نویسی اندروید
    22. ارسال پیامک در برنامه نویسی اندروید
    23. تماس های تلفنی در برنامه نویسی اندروید
    24. انتشار برنامه اندروید
    25. آموزش Alert Dialog در برنامه نویسی اندروید
    26. انیمیشن در برنامه نویسی اندروید
    27. ضبط صدا در برنامه نویسی اندروید
    28. مدیریت صدا در برنامه نویسی اندروید
    29. آموزش Auto Complete در برنامه نویسی اندروید
    30. بهترین شیوه ها در برنامه نویسی اندروید
    31. بلوتوث در برنامه نویسی اندروید
    32. استفاده از دوربین در برنامه نویسی اندروید
    33. کلیپ بورد در برنامه نویسی اندروید
    34. فونت سفارشی در برنامه نویسی اندروید
    35. پشتیبان گیری از داده ها در برنامه نویسی اندروید
    36.  ابزارهای توسعه دهنده در برنامه نویسی اندروید
    37. آموزش شبیه ساز در برنامه نویسی اندروید
    38. اتصال به فیس بوک در برنامه نویسی اندروید
    39. حرکات لمسی در برنامه نویسی اندروید
    40. آموزش گوگل مپ در برنامه نویسی اندروید
    41. افکت های تصویر در برنامه نویسی اندروید
    42. Image Switcher در برنامه نویسی اندروید
    43. حافظه داخلی در برنامه نویسی اندروید
    44. آموزش کار با JetPlayer در برنامه نویسی اندروید
    45. JSON Parser در برنامه نویسی اندروید
    46. ارتباط با LinkedIn در برنامه نویسی اندروید
    47. نوار پیشرفت Spinner در برنامه نویسی اندروید
    48. بومی سازی در برنامه نویسی اندروید
    49. صفحه Login در برنامه نویسی اندروید
    50. MediaPlayer در برنامه نویسی اندروید
    51. Multitouch در برنامه نویسی اندروید
    52. Navigation در برنامه نویسی اندروید
    53. اتصال به اینترنت در برنامه نویسی اندروید
    54. NFC در برنامه نویسی اندروید
    55. PHP و MYSQL در برنامه نویسی اندروید
    56. Progress Circle دربرنامه نویسی اندروید
    57. Progress Bar در برنامه نویسی اندروید
    58. Push Notification در برنامه نویسی اندروید
    59. RenderScript در برنامه نویسی اندروید
    60. RSS Reader در برنامه نویسی اندروید
    61. Screen cast در برنامه نویسی اندروید
    62. SDK Manager در برنامه نویسی اندروید
    63. سنسورها در برنامه نویسی اندروید
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه