چرخه عمر اکتیویتی (Activity)

درس بعدی |||||||| درس قبلی

یک Activity نشان دهنده یک صفحه منفرد با رابط کاربری است ، دقیقاً مانند پنجره یا قاب جاوا. فعالیت اندروید زیر کلاس کلاس ContextThemeWrapper است.
اگر با زبان برنامه نویسی C ، C ++ یا Java کار کرده باشید ، حتماً دیده اید که برنامه شما از تابع اصلی () شروع می شود. روشی کاملاً مشابه ، سیستم Android برنامه خود را با فعالیتی آغاز می کند که با فراخوانی روش پاسخگویی onCreate () شروع می شود. دنباله ای از روشهای پاسخ به تماس وجود دارد که یک فعالیت را راه اندازی می کند و دنباله ای از روشهای برگشت تماس که فعالیتی را از بین می برد همانطور که در نمودار چرخه حیات فعالیت زیر نشان داده شده است:

نمودار چرخه عمر اکتیویتی

کلاس Activity تماسهای زیر را به عنوان مثال رویدادها تعریف می کند. نیازی به پیاده سازی همه روش های برگشت تماس نیست. با این حال ، مهم این است که شما هر یک را بفهمید و مواردی را که برنامه شما را مطابق انتظار کاربران تضمین می کند ، اجرا کنید.

() onCreate
این اولین رویداد است و هنگام ایجاد فعالیت برای اولین بار فراخوانی می شود.
() onStart
این رویداد زمانی فراخوانی می شود که فعالیت برای کاربر قابل مشاهده شود.
() onResume
وقتی که کاربر شروع به تعامل با برنامه می کند.
() onPause
اکتیویتی Pause ورودی کاربر را دریافت نمی کند و نمی تواند هیچ کدی را اجرا کند و هنگامی که اکتیویتی فعلی در حالت Pause است و اکتیویتی قبلی از سر گرفته می شود فراخوانی می شود.
() onStop
زمانی فراخوانی می شود که اکتیویتی دیگر قابل مشاهده نباشد.
() onDestroy
این رویداد قبل از اینکه اکتیویتی توسط سیستم از بین برود فراخوانی می شود.
() onRestart
این رویداد با زمانی انجام می گیرد که اکتیویتی پس از متوقف شدن مجدداً شروع شود.

مثال
این مثال برای نشان دادن چرخه فعالیت فعالیت برنامه Android ، مراحل ساده ای را به شما ارائه می دهد. مراحل زیر را دنبال کنید تا برنامه Android را که در فصل Hello World mînak ایجاد کرده ایم اصلاح کنید:

۱-شما از Android studio برای ایجاد یک برنامه Android استفاده خواهید کرد و آن را به عنوان HelloWorld تحت یک بسته com.example.helloworld همانطور که در مثال سلام دنیا توضیح داده شده است ، نامگذاری کنید.

۲-همانطور که در زیر توضیح داده شده ، فایل اصلی فعالیت MainActivity.java را تغییر دهید. بقیه پرونده ها را بدون تغییر نگه دارید.

۳-برنامه را اجرا کنید تا شبیه ساز Android را راه اندازی کنید و نتیجه تغییرات انجام شده در برنامه را تأیید کنید.

در زیر محتوای پرونده فعالیت اصلی تغییر یافته src / com.example.helloworld / MainActivity.java است. این پرونده شامل هر یک از روشهای اساسی چرخه زندگی است. از روش Log.d () برای تولید پیام های ورود به سیستم استفاده شده است.

package com.example.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;

public class MainActivity extends Activity {
   String msg = "Android : ";
   
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Log.d(msg, "The onCreate() event");
   }

   /** Called when the activity is about to become visible. */
   @Override
   protected void onStart() {
      super.onStart();
      Log.d(msg, "The onStart() event");
   }

   /** Called when the activity has become visible. */
   @Override
   protected void onResume() {
      super.onResume();
      Log.d(msg, "The onResume() event");
   }

   /** Called when another activity is taking focus. */
   @Override
   protected void onPause() {
      super.onPause();
      Log.d(msg, "The onPause() event");
   }

   /** Called when the activity is no longer visible. */
   @Override
   protected void onStop() {
      super.onStop();
      Log.d(msg, "The onStop() event");
   }

   /** Called just before the activity is destroyed. */
   @Override
   public void onDestroy() {
      super.onDestroy();
      Log.d(msg, "The onDestroy() event");
   }
}

یک کلاس اکتیویتی با استفاده از فایل XML موجود در پوشه res / layout پروژه ، تمام م Uلفه UI را بارگیری می کند. عبارت زیر اجزای UI را از پرونده res / layout / activity_main.xml بارگیری می کند:

setContentView(R.layout.activity_main);

یک برنامه کاربردی می تواند یک یا چند فعالیت بدون هیچ محدودیتی داشته باشد. هر فعالیتی که برای برنامه خود تعریف می کنید باید در پرونده AndroidManifest.xml شما اعلام شود و فعالیت اصلی برنامه شما باید در مانیفست با که شامل MAIN action و LAUNCHER است به شرح زیر اعلام شود:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.tutorialspoint7.myapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

اگر یکی از Activity اصلی یا LAUNCHER برای یکی از فعالیتهای شما اعلام نشده باشد ، نماد برنامه شما در لیست برنامه های صفحه اصلی ظاهر نمی شود.
بیایید سعی کنیم Hello World اصلاح شده خود را اجرا کنیم! برنامه ما فقط اصلاح شده است. من تصور می کنم شما AVD خود را هنگام راه اندازی محیط ایجاد کرده اید. برای اجرای برنامه از Android studio ، یکی از پرونده های فعالیت پروژه خود را باز کرده و از نوار ابزار روی Run icon کلیک کنید. Android studio برنامه را روی AVD شما نصب کرده و شروع به کار می کند و اگر با راه اندازی و برنامه همه چیز خوب است ، پنجره Emulator نمایش داده می شود و باید پیام های ورود به سیستم زیر را در پنجره LogCat در Android studio مشاهده کنید.

08-23 10:32:07.682 4480-4480/com.example.helloworld D/Android :: The onCreate() event
08-23 10:32:07.683 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:32:07.685 4480-4480/com.example.helloworld D/Android :: The onResume() event
پنجره لاگ کت (Log CAT)

بیایید سعی کنیم دکمه قفل صفحه را روی شبیه ساز Android کلیک کنیم و پیام های زیر را در پنجره LogCat در android studio ایجاد می کند:

08-23 10:32:53.230 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:32:53.294 4480-4480/com.example.helloworld D/Android :: The onStop() event

بیایید دوباره سعی کنیم قفل صفحه شما را روی شبیه ساز Android باز کنیم و پیام های زیر را در پنجره LogCat در Android studio ایجاد می کند:

08-23 10:34:41.390 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:34:41.392 4480-4480/com.example.helloworld D/Android :: The onResume() event

در مرحله بعدی ، اجازه دهید دوباره سعی کنیم روی دکمه برگشت روی شبیه ساز Android کلیک کنیم و پیام های زیر را در پنجره LogCat در Android studio ایجاد می کند و این چرخه فعالیت Activity را برای یک برنامه Android تکمیل می کند.

08-23 10:37:24.806 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:37:25.668 4480-4480/com.example.helloworld D/Android :: The onStop() event
08-23 10:37:25.669 4480-4480/com.example.helloworld D/Android :: The onDestroy() event