النشاط
الوصول إلى واجهات برمجة التطبيقات القابلة للإنشاء والتي تم إنشاؤها في أعلى "النشاط"
التعديل الأخير الإصدار المستقر سحب المرشح الإصدار التجريبي إصدار أولي
26 يونيو 2024 1.9.0 - - 1.10.0-alpha01

إعلان التبعيات

لإضافة تبعية إلى النشاط، يجب إضافة مستودع Google Maven إلى مشروعك. يمكنك الاطّلاع على مستودع Maven من Google للحصول على مزيد من المعلومات.

أضِف العناصر الاعتمادية الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:

رائع

dependencies {
    def activity_version = "1.9.0"

    // Java language implementation
    implementation "androidx.activity:activity:$activity_version"
    // Kotlin
    implementation "androidx.activity:activity-ktx:$activity_version"
}

Kotlin

dependencies {
    val activity_version = "1.9.0"

    // Java language implementation
    implementation("androidx.activity:activity:$activity_version")
    // Kotlin
    implementation("androidx.activity:activity-ktx:$activity_version")
}

لمزيد من المعلومات حول العناصر الاعتمادية، يُرجى الاطّلاع على إضافة تبعيات الإصدار.

ملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. أخبرنا إذا اكتشفت مشكلات جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء عدد جديد

راجِع مستندات "أداة تتبُّع المشاكل" للحصول على مزيد من المعلومات.

الإصدار 1.10

الإصدار 1.10.0-alpha01

26 يونيو 2024

تم طرح الإصدارات androidx.activity:activity:1.10.0-alpha01 وandroidx.activity:activity-compose:1.10.0-alpha01 وandroidx.activity:activity-ktx:1.10.0-alpha01. تم تطوير هذا الإصدار في فرع داخلي.

الميزات الجديدة

  • تمت إضافة دعم لميزات PhotoPicker الجديدة التي تم طرحها في Android V، بما في ذلك إمكانية اختيار الصور بالترتيب واختيار علامة التبويب التي يجب أن تكون مرئية مبدئيًا (سواء ألبومات أو صور).

الإصدار 1.9

الإصدار 1.9.0

17 أبريل 2024

تم طرح الإصدارات androidx.activity:activity:1.9.0 وandroidx.activity:activity-compose:1.9.0 وandroidx.activity:activity-ktx:1.9.0. يحتوي الإصدار 1.9.0 على عمليات التنفيذ هذه.

تغييرات مهمة منذ الإصدار 1.8.0

  • تنفِّذ ComponentActivity الآن OnUserLeaveHintProvider للسماح للمكونات باستدعاءات أحداث onUserLeaveHint.
  • تعرض واجهات برمجة التطبيقات OnBackPressedCallback وBackHandler وPredictiveBackHandler تحذيرات عند استدعاء onBackPressedDispatcher.onBackPressed() عند معالجة الطلب، لأنّ ذلك سيؤدي دائمًا إلى إيقاف حركة الرجوع القائمة على التوقّعات. ويمكنك الاطّلاع على دليل أفضل الممارسات للحصول على مزيد من التفاصيل.
  • وتمت إعادة كتابة باقي واجهات برمجة تطبيقات الأنشطة بلغة Kotlin، وتم نقل جميع الإضافات التي كانت متوفّرة سابقًا في activity-ktx إلى activity. activity-ktx فارغ الآن.
    • في إطار عملية تحويل ActivityResultLauncher إلى Kotlin، أصبحت الطريقة getContract الآن سمة مجردة في Kotlin. هذا تغيير متوافق مع النظام الثنائي، ولكن يتعطّل المصدر إذا كان تنفيذ ActivityResultLauncher مكتوبًا بلغة Kotlin.

الإصدار 1.9.0-rc01

3 أبريل 2024

تم طرح الإصدارات androidx.activity:activity:1.9.0-rc01 وandroidx.activity:activity-compose:1.9.0-rc01 وandroidx.activity:activity-ktx:1.9.0-rc01. يحتوي الإصدار 1.9.0-rc01 على عمليات التنفيذ هذه.

تعديل بشأن التبعية

الإصدار 1.9.0-beta01

20 مارس 2024

تم طرح الإصدارات androidx.activity:activity:1.9.0-beta01 وandroidx.activity:activity-compose:1.9.0-beta01 وandroidx.activity:activity-ktx:1.9.0-beta01. يحتوي الإصدار 1.9.0-beta01 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • تم إصلاح تراجع أداء بدء تشغيل النشاط الذي تم تقديمه في النشاط 1.9.0-alpha02 نتيجة طلب OnBackPressedDispatcher كجزء من إنشاء النشاط. (Ie75e3)

الإصدار 1.9.0-alpha03

7 فبراير 2024

تم طرح الإصدارات androidx.activity:activity:1.9.0-alpha03 وandroidx.activity:activity-compose:1.9.0-alpha03 وandroidx.activity:activity-ktx:1.9.0-alpha03. يحتوي الإصدار 1.9.0-alpha03 على هذه عمليات التنفيذ.

تحذير من نتوءات

إصلاح الأخطاء

  • إذا تم إرسال حدث رجوع من النظام أثناء تشغيل "إيماءة رجوع تنبؤية" تعمل حاليًا، يتم إلغاء "إيماءة الرجوع القائمة على التوقّعات" التي تعمل حاليًا، ويبدأ حدث الرجوع الجديد لبدء "إيماءة رجوع توقّعية" جديدة. (I3482e)
  • تم إصلاح عطل عند الوصول إلى onBackPressedDispatcher من ComponentActivity للمرة الأولى من سلسلة محادثات في الخلفية. يمكن الآن الوصول بأمان إلى onBackPressedDispatcher في أي سلسلة محادثات. (I79955)

الإصدار 1.9.0-alpha02

24 يناير 2024

تم طرح الإصدارات androidx.activity:activity:1.9.0-alpha02 وandroidx.activity:activity-compose:1.9.0-alpha02 وandroidx.activity:activity-ktx:1.9.0-alpha02. يحتوي الإصدار 1.9.0-alpha02 على هذه عمليات التنفيذ.

إحالات Kotlin الناجحة

  • تمت كتابة ActivityResultRegistry في Kotlin. يضمن ذلك نقل صلاحية القيم العامة للعقد الذي تم تمريره إلى register إلى "ActivityResultLauncher" الذي تم إرجاعه إليك بشكل صحيح. (I121f0)
  • تمت كتابة ActivityResult في Kotlin. تم نقل إضافات ActivityResult Kotlin التي تتيح التدمير في الحقلَين resultCode وdata من activity-ktx إلى activity. (I0565a)
  • تم نقل إضافات Kotlin by viewModels() للغة ComponentActivity وtrackPipAnimationHintView من activity-ktx إلى activity. عنصر "activity-ktx" فارغ الآن. (I0a444)

إصلاح الأخطاء

  • ترسم واجهة برمجة التطبيقات enableEdgeToEdge الآن حول أي قصاصات عرض. (a3644b، b/311173461)
  • من النشاط 1.8.2: تم إصلاح الجزء الإضافي المُضمَّن في "عقد نشاط أداة اختيار الصور" ACTION_SYSTEM_FALLBACK_PICK_IMAGES لتمرير مفتاح EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX بشكل صحيح بدلاً من استخدام المفتاح الإضافي مع المفتاح "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". ننصح بشدّة إذا كنت من المصنّعين الأصليين للأجهزة التي تطبّق "أداة اختيار الصور" الاحتياطية للنظام لإتاحة كلتا الإضافتَين لضمان أكبر قدر من التوافق. (I96a00)

الإصدار 1.9.0-alpha01

29 تشرين الثاني (نوفمبر) 2023

تم طرح الإصدارات androidx.activity:activity:1.9.0-alpha01 وandroidx.activity:activity-compose:1.9.0-alpha01 وandroidx.activity:activity-ktx:1.9.0-alpha01. يحتوي الإصدار 1.9.0-alpha01 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تنفِّذ ComponentActivity الآن OnUserLeaveHintProvider للسماح للمكونات باستدعاءات أحداث onUserLeaveHint. (I54892)

التغييرات في واجهة برمجة التطبيقات

  • تمت كتابة ComponentActivity في Kotlin. (I14f31)
  • تمت كتابة ActivityResultCaller في Kotlin. (Ib02e4)
  • تمت كتابة ActivityResultLauncher في Kotlin. وفي إطار هذه الإحالة الناجحة، أصبحت الطريقة getContract الآن عبارة عن سمة مجردة في لغة Kotlin. هذا تغيير متوافق مع النظام الثنائي، ولكن يتعطّل المصدر إذا كان تنفيذ ActivityResultLauncher مكتوبًا بلغة Kotlin. (رقم تعريف 4615)
  • المستوى 19 لواجهة برمجة التطبيقات في PickVisualMediaRequest هو المستوى 19 نفسه ضمن عقد PickVisualMedia الخاص بنتائج النشاط. (Id6e21)

تعديل بشأن التبعية

الإصدار 1.8

الإصدار 1.8.2

13 كانون الأول (ديسمبر) 2023

تم طرح الإصدارات androidx.activity:activity:1.8.2 وandroidx.activity:activity-compose:1.8.2 وandroidx.activity:activity-ktx:1.8.2. يحتوي الإصدار 1.8.2 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • تم إصلاح القيمة الإضافية التي تم ضبطها على ACTION_SYSTEM_FALLBACK_PICK_IMAGES في عقد نشاط أداة اختيار الصور لتمرير مفتاح EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX بشكل صحيح، بدلاً من استخدام المفتاح الإضافي مع المفتاح "com.google.android.gms.provider.extra.PICK_IMAGES_MAX". ننصح بشدّة إذا كنت من المصنّعين الأصليين للأجهزة التي تطبّق "أداة اختيار الصور" الاحتياطية للنظام لإتاحة كلتا الإضافتَين لضمان أكبر قدر من التوافق. (I96a00)

الإصدار 1.8.1

15 تشرين الثاني (نوفمبر) 2023

تم طرح الإصدارات androidx.activity:activity:1.8.1 وandroidx.activity:activity-compose:1.8.1 وandroidx.activity:activity-ktx:1.8.1. يحتوي الإصدار 1.8.1 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • يستمر OnBackPressedDispatcher الآن في الإرسال إلى OnBackPressedCallback الصحيح حتى بعد إضافة OnBackPressedCallback جديد أثناء التعامل مع إيماءة الرجوع. (Id0ff6)

الإصدار 1.8.0

‫4 أكتوبر 2023

تم طرح الإصدارات androidx.activity:activity:1.8.0 وandroidx.activity:activity-compose:1.8.0 وandroidx.activity:activity-ktx:1.8.0. يحتوي الإصدار 1.8.0 على عمليات الالتزام هذه.

تغييرات مهمة منذ الإصدار 1.7.0

  • ظهر قائم على التوقّعات - يعرض جهاز "OnBackPressedCallback" الآن استدعاءات جديدة قائمة على التوقّعات للتعامل مع بدء إيماءة الرجوع والتقدّم خلال الإيماءة، وإلغاء إيماءة الرجوع، بالإضافة إلى عملية معاودة الاتصال السابقة على "handleOnBackPressed()" عندما تكون إيماءة الرجوع مفعَّلة. يتضمّن هذا الوضع أيضًا وظيفة "PredictiveBackHandler" القابلة للتعديل للتعامل مع أحداث إيماءة الرجوع التنبؤية في ميزة "إنشاء النشاط". ويوفر تدفقًا لكائنات BackEventCompat التي يجب جمعها في ملف lamba المعلَّق الذي تقدّمه:
  PredictiveBackHandler { progress: Flow<BackEventCompat> ->
    // code for gesture back started
    try {
      progress.collect { backEvent ->
      // code for progress
    }
    // code for completion
    } catch (e: CancellationException) {
      // code for cancellation
    }
  }

تم إيقاف ComponentActivity.onBackPressed() نهائيًا لصالح واجهات برمجة التطبيقات التي تتيح معالجة البيانات مرة أخرى. ويجب أن يستخدم المطوّرون الآن OnBackPressedDispatcher بدلاً من إلغاء هذه الطريقة.

  • EdgeToEdge: تمت إضافة ComponentActivity.enableEdgeToEdge() لضبط الشاشة من الحافة إلى الحافة بسهولة بطريقة متوافقة مع الأنظمة القديمة.

الإصدار 1.8.0-rc01

20 أيلول (سبتمبر) 2023

تم طرح الإصدارات androidx.activity:activity:1.8.0-rc01 وandroidx.activity:activity-compose:1.8.0-rc01 وandroidx.activity:activity-ktx:1.8.0-rc01. يحتوي الإصدار 1.8.0-rc01 على هذه عمليات التنفيذ.

الإصدار 1.8.0-beta01

6 أيلول (سبتمبر) 2023

تم طرح الإصدارات androidx.activity:activity:1.8.0-beta01 وandroidx.activity:activity-compose:1.8.0-beta01 وandroidx.activity:activity-ktx:1.8.0-beta01. يحتوي الإصدار 1.8.0-beta01 على عمليات التنفيذ هذه.

تحسين المستندات

  • تم تحسين عملية توثيق BackEventCompat. (aosp/2722254)

الإصدار 1.8.0-alpha07

23 آب (أغسطس) 2023

تم طرح الإصدارات androidx.activity:activity:1.8.0-alpha07 وandroidx.activity:activity-compose:1.8.0-alpha07 وandroidx.activity:activity-ktx:1.8.0-alpha07. يحتوي الإصدار 1.8.0-alpha07 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تمت إضافة عنصر جديد من "PredictiveBackHandler" قابل للضبط لمعالجة أحداث إيماءة الرجوع التنبئية. وتوفّر هذه السياسة Flow من إجمالي BackEventCompat عناصر يجب جمعها في رمز اللامبا المعلّق الذي تقدّمه:

    PredictiveBackHandler { progress: Flow<BackEventCompat> ->
      // code for gesture back started
      try {
        progress.collect { backEvent ->
        // code for progress
      }
      // code for completion
      } catch (e: CancellationException) {
        // code for cancellation
      }
    }
    

    ويتم أيضًا توفير تحذير بشأن وقت التجميع عبر قاعدة Lint لضمان استدعاء Flow لـ collect(). (Id2773، b/294884345)

  • يتم الآن إعداد onBackPressedDispatcher في ComponentActivity بطريقة كسولة بحيث لا يتم إنشاؤها إلا عند الحاجة. (I0bf8e)

إصلاح الأخطاء

  • لن يعرض "ComponentActivity" بعد الآن NPE على نظام التشغيل Android 13 عند تلقّي معاودة الاتصال من onBackPressed() وكان النشاط DESTROYED. (Idb055، b/291869278)
  • إزالة استخدامات واجهة برمجة التطبيقات isAtLeastU() التجريبية (Ie9117، b/289269026)

الإصدار 1.8.0-alpha06

‫21 حزيران (يونيو) 2023

تم طرح الإصدارات androidx.activity:activity:1.8.0-alpha06 وandroidx.activity:activity-compose:1.8.0-alpha06 وandroidx.activity:activity-ktx:1.8.0-alpha06. يحتوي الإصدار 1.8.0-alpha06 على هذه عمليات التنفيذ.

الميزات الجديدة

  • يلغي OnBackPressedDispatcher الآن بشكل صحيح أي استدعاءات تمت إزالتها أثناء إيماءة الرجوع القائمة على التوقّعات. (I3f90f)

التغييرات في واجهة برمجة التطبيقات

  • عند تمرير SystemBarStyle.auto إلى واجهة برمجة تطبيقات enableEdgeToEdge، يمكنك الآن إلغاء مَعلمة lambda detectDarkMode لتوفير منطق مخصّص لرصد "الوضع الليلي". (aosp/2546393، b/278263793)

الإصدار 1.8.0-alpha05

7 حزيران (يونيو) 2023

تم طرح الإصدارات androidx.activity:activity:1.8.0-alpha05 وandroidx.activity:activity-compose:1.8.0-alpha05 وandroidx.activity:activity-ktx:1.8.0-alpha05. تم تطوير هذا الإصدار في فرع داخلي.

التغييرات في واجهة برمجة التطبيقات

  • يوفّر النشاط الآن فئة BackEventCompat تعمل كإصدار متوافق مع الأنظمة القديمة من BackEvent وتكون منفصلة عن فئة BackEvent في إطار العمل.
  • تغيير قد يؤدي إلى عطل: تتلقّى الآن الطريقتان handleOnBackStarted وhandleOnBackProgressed من OnBackPressedCallback مثيل androidx.activity.BackEventCompat بدلاً من فئة android.window.BackEvent في إطار العمل. تم أيضًا تحديث واجهات برمجة تطبيقات @VisibleForTesting المكافئة على OnBackPressedDispatcher.
  • تستخدم الآن الدالة الإنشائية لـ OnBackPressedDispatcher مثيل Consumer<Boolean> اختياري يسمح لمالكي المُرسل بتلقي معاودة اتصال عندما يتغير عدد عمليات الاستدعاء المفعَّلة من صفر إلى غير صفري أو العكس بالعكس.

إصلاح الأخطاء

الإصدار 1.8.0-alpha04

10 أيار (مايو) 2023

تم طرح الإصدارات androidx.activity:activity:1.8.0-alpha04 وandroidx.activity:activity-compose:1.8.0-alpha04 وandroidx.activity:activity-ktx:1.8.0-alpha04. تم إصدار هذا الرقم من فرع داخلي.

إصلاح الأخطاء

الإصدار 1.8.0-alpha03

12 نيسان (أبريل) 2023

تم طرح الإصدارات androidx.activity:activity:1.8.0-alpha03 وandroidx.activity:activity-compose:1.8.0-alpha03 وandroidx.activity:activity-ktx:1.8.0-alpha03. تم إصدار هذا الرقم من فرع داخلي.

الميزات الجديدة

  • تمت إضافة "ComponentActivity.setUpEdgeToEdge()" لضبط الشاشة من حافة إلى حافة بسهولة وبطريقة متوافقة مع الأنظمة القديمة.

التغييرات في واجهة برمجة التطبيقات

  • تم إيقاف ComponentActivity.onBackPressed() نهائيًا لصالح واجهات برمجة التطبيقات التي تتيح معالجة البيانات مرة أخرى. ويجب أن يستخدم المطوّرون الآن OnBackPressedDispatcher بدلاً من إلغاء هذه الطريقة. (Ibce2f، b/271596918)
  • يشتمل كل من ComponentDialog وComponentActivity الآن على واجهة برمجة التطبيقات initViewTreeOwners() المتاحة للجميع لكي يتم استخدامهما لإعداد جميع مالكي العرض التدرّجي للحساب قبل إعداد عرض المحتوى. (Ibdce0، b/261314581)

إصلاح الأخطاء

  • تم إصلاح المشكلة المتمثلة في أن "الأجزاء" كانت تُلغي بشكل غير صحيح صلاحية ListHosts بشكل غير صحيح وتسبَّبت في سلوك غير متوقع للقوائم الأخرى في "النشاط". (I9404e، b/244336571)

تغييرات أخرى

  • يستخدم ActivityResultRegister الآن Random بلغة Kotlin بدلاً من Java. (I4d98f، b/272096025)

الإصدار 1.8.0-alpha02

8 آذار (مارس) 2023

تم طرح الإصدارات androidx.activity:activity:1.8.0-alpha02 وandroidx.activity:activity-compose:1.8.0-alpha02 وandroidx.activity:activity-ktx:1.8.0-alpha02. طورت من فرع داخلي.

تعديل بشأن التبعية

الإصدار 1.8.0-alpha01

8 شباط (فبراير) 2023

تم طرح الإصدارات androidx.activity:activity:1.8.0-alpha01 وandroidx.activity:activity-compose:1.8.0-alpha01 وandroidx.activity:activity-ktx:1.8.0-alpha01. تم بناء هذا من فرع داخلي.

الميزات الجديدة

  • تحتوي الفئة OnBackPressedCallback الآن على استدعاءات جديدة للتقدم المحرز في تنفيذ إيماءة الرجوع إلى الخلف، وذلك للتعامل مع إيماءة الرجوع عند البدء ومستوى التقدّم خلال الإيماءة، وإلغاء إيماءة الرجوع، بالإضافة إلى استدعاء handleOnBackPressed() السابق عند تنفيذ إيماءة الرجوع.

الإصدار 1.7

الإصدار 1.7.2

24 أيار (مايو) 2023

تم طرح الإصدارات androidx.activity:activity:1.7.2 وandroidx.activity:activity-compose:1.7.2 وandroidx.activity:activity-ktx:1.7.2. يحتوي الإصدار 1.7.2 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • إصلاح تعطُّل ReportDrawn عند الانتقال من الشاشة قبل استدعاء report. (Ic46f1، b/260506820)

الإصدار 1.7.1

19 نيسان (أبريل) 2023

تم طرح الإصدارات androidx.activity:activity:1.7.1 وandroidx.activity:activity-compose:1.7.1 وandroidx.activity:activity-ktx:1.7.1. يحتوي الإصدار 1.7.1 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • لم يعد تسريب ReportFullyDrawExecuter عند استخدام ComponentActivity مع ActivityScenario. (Id2ff2، b/277434271)

الإصدار 1.7.0

22 آذار (مارس) 2023

تم طرح الإصدارات androidx.activity:activity:1.7.0 وandroidx.activity:activity-compose:1.7.0 وandroidx.activity:activity-ktx:1.7.0. يحتوي الإصدار 1.7.0 على عمليات الالتزام هذه.

تغييرات مهمة منذ الإصدار 1.6.0

  • تم تعديل عقود نشاط "أداة اختيار الصور" في PickVisualMedia وPickMultipleVisualMedia لتضمين إجراء احتياطي إضافي يمكن استخدامه في حال عدم توفّر MediaStore.ACTION_PICK_IMAGES، ما يسمح للمصنِّعين الأصليين وتطبيقات النظام، مثل خدمات Google Play، بتوفير تجربة متّسقة في "أداة اختيار الصور" على مجموعة أكبر من أجهزة Android ومستويات واجهة برمجة التطبيقات، وذلك من خلال تنفيذ الإجراء الاحتياطي. ستستخدم "أداة اختيار الصور" هذا الإجراء الاحتياطي إذا كان متاحًا قبل العودة إلى استخدام Intent.ACTION_OPEN_DOCUMENT، والذي سيبقى متوافقًا مع جميع أجهزة واجهة برمجة التطبيقات 19 والإصدارات الأحدث.
  • تنفِّذ ComponentDialog الآن SavedStateRegistryOwner ويمكنها الوصول إلى SavedStateRegistry الخاصة بها وتضبط SavedStateRegistryOwner على ViewTree. يمكن الآن استخدام Jetpack Compose ضِمن ComponentDialog لأنّها تستوفي كل من LifecycleOwner وSavedStateRegistryOwner المرفقَين بالنافذة من خلال متطلبات واجهات برمجة تطبيقات ViewTree.
  • يتيح لك IntentSenderRequest.Builder.setFlags() الآن ضبط علامات متعدّدة من Intent، بدلاً من علامة واحدة فقط.

تحويل Kotlin

تم تحويل عدد من فئات الأنشطة إلى لغة Kotlin. لا تزال جميع الفئات التي تم تحويلها تحتفظ بتوافقها الثنائي مع الإصدارات السابقة. تحتوي الفئات التالية على تغييرات غير متوافقة للفئات المكتوبة بلغة Kotlin: ActivityResultRegistryOwner وOnBackPressedDispatcherOwner.

يعرض الجدول أدناه الإحالات الناجحة المصدر للإصدار الجديد من النشاط:

النشاط 1.5 النشاط 1.6
override fun getActivityResultRegistry() = activityResultRegistry override val activityResultRegistry = activityResultRegistry
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher override val >

تم تحويل هذه الصفوف أيضًا إلى لغة Kotlin، ولكنها ستظلّ متوافقة مع المصدر: ContextAware وContextAwareHelper وOnContextAvailableListener وIntentSenderRequest وOnBackPressedDispatcher.

واجهات برمجة تطبيقات FullyDrawnReporter

توفِّر ComponentActivity الآن مثيل FullyDrawnReporter يسمح لمكوّنات متعددة بالإبلاغ عندما تكون جاهزة للتفاعل. سينتظر "ComponentActivity" اكتمال جميع المكوّنات قبل طلب الرقم reportFullyDrawn() بالنيابة عنك. تراعي واجهات برمجة التطبيقات هذه متطلبات التوقيت نيابةً عنك ولا تحتاج إلى طلبها كجزء من استدعاء onDraw.

ننصح بتفعيل واجهات برمجة التطبيقات هذه:

  • إرسال إشارة إلى "وقت تشغيل Android" عند اكتمال بدء التشغيل، لضمان تضمين كل الرموز البرمجية التي يتم تشغيلها أثناء تسلسل بدء تشغيل متعدد الإطارات، وإعطاء الأولوية لتجميع البيانات في الخلفية
  • الإشارة إلى مقياس أداء الماكرو ومؤشرات Play الحيوية عندما يكون من المفترض أن يتم اعتبار تطبيقك قد تم رسمه بشكل كامل حسب مقاييس بدء التشغيل، حتى تتمكّن من تتبُّع الأداء

تمّت إضافة ثلاث واجهات برمجة تطبيقات Activity Compose لتسهيل استخدام FullyDrawnReporter من عناصر فردية قابلة للإنشاء:

  • تشير القيمة ReportDrawn إلى أنّ المحتوى القابل للإنشاء جاهز على الفور للتفاعل.
  • يأخذ ReportDrawnWhen إسنادًا (أي، list.count > 0) للإشارة إلى الوقت الذي يصبح فيه المحتوى القابل للإنشاء جاهزًا للتفاعل.
  • تستخدم ReportDrawnAfter طريقة تعليق، عند اكتمالها، تشير إلى استعدادك للتفاعل.

التحديثات المتعلقة بالاعتمادية

الإصدار 1.7.0-rc01

8 آذار (مارس) 2023

تم طرح الإصدارات androidx.activity:activity:1.7.0-rc01 وandroidx.activity:activity-compose:1.7.0-rc01 وandroidx.activity:activity-ktx:1.7.0-rc01. يحتوي الإصدار 1.7.0-rc01 على هذه عمليات التنفيذ.

تعديل بشأن التبعية

الإصدار 1.7.0-beta02

22 شباط (فبراير) 2023

تم طرح الإصدارات androidx.activity:activity:1.7.0-beta02 وandroidx.activity:activity-compose:1.7.0-beta02 وandroidx.activity:activity-ktx:1.7.0-beta02. يحتوي الإصدار 1.7.0-beta02 على عمليات التنفيذ هذه.

التغييرات في واجهة برمجة التطبيقات

  • إنّ الإجراء والاستخدام الإضافي المستخدَم في عقدَي PickVisualMedia وPickMultipleVisualMedia كإجراء احتياطي في حال عدم توفُّر MediaStore.ACTION_PICK_IMAGES أصبحا ثوابتًا عامة تعمل على توفير ثبات واجهة برمجة التطبيقات للمصنّعين الأصليين للأجهزة وتطبيقات النظام التي تريد توفير تجربة متّسقة في "أداة اختيار الصور". ولا يزال تنفيذ هذا الإجراء الاحتياطي يقتصر على تطبيقات النظام فقط. (Icd320)

الإصدار 1.7.0-beta01

8 شباط (فبراير) 2023

تم طرح الإصدارات androidx.activity:activity:1.7.0-beta01 وandroidx.activity:activity-compose:1.7.0-beta01 وandroidx.activity:activity-ktx:1.7.0-beta01. يحتوي الإصدار 1.7.0-beta01 على عمليات التنفيذ هذه.

الميزات الجديدة

  • يتيح لك IntentSenderRequest.Builder.setFlags() الآن ضبط علامات متعدّدة من Intent، بدلاً من علامة واحدة فقط. (Iac04c)

إصلاح الأخطاء

  • الإجراء الاحتياطي لتطبيق PickVisualMedia عندما تكون "أداة اختيار الصور" لإطار العمل غير متاح الآن يؤدي إلى جعل المعالجة بشكل صحيح تقتصر على التطبيقات المثبّتة في صورة نظام الجهاز. (If8ae6)

إحالات Kotlin الناجحة

  • تمت كتابة ActivityResultRegistryOwner الآن بلغة Kotlin. هذا تغيير في المصدر غير متوافق مع هذه الفئات المكتوبة بلغة Kotlin، وعليك الآن إلغاء السمة activityResultRegistry بدلاً من تنفيذ دالة getActivityResultRegistry() السابقة. (I0b00e)
  • تمت كتابة OnBackPressedDispatcherOwner الآن بلغة Kotlin. هذا تغيير في المصدر غير متوافق مع هذه الفئات المكتوبة بلغة Kotlin، وعليك الآن إلغاء السمة onBackPressedDispatcher بدلاً من تنفيذ دالة getOnBackPressedDispatcher السابقة. (Ia277d)
  • تمت كتابة ContextAware وContextAwareHelper وOnContextAvailableListener وIntentSenderRequest وOnBackPressedDispatcher الآن بلغة Kotlin. (I1a73e وIada92 وaosp/2410754 وI18ac7 وb/257291701)

الإصدار 1.7.0-alpha04

25 كانون الثاني (يناير) 2023

تم طرح الإصدارات androidx.activity:activity:1.7.0-alpha04 وandroidx.activity:activity-compose:1.7.0-alpha04 وandroidx.activity:activity-ktx:1.7.0-alpha04. يحتوي الإصدار 1.7.0-alpha04 على هذه عمليات التنفيذ.

الميزات الجديدة

  • سيستخدم عقدَا "PickVisualMedia" و"PickMultipleVisualMedia" الآن "أداة اختيار الصور" المتوفّرة في "خدمات Google Play" في الحالات التي قدّم فيها نظام Android "أداة اختيار الصور" (على سبيل المثال، MediaStore.ACTION_PICK_IMAGES) غير متاح. إنّ واجهة برمجة التطبيقات isPhotoPickerAvailable() التي ترصد فقط أداة اختيار الصور التي يوفّرها نظام Android، تم إيقافها نهائيًا. ننصحك باستخدام واجهة برمجة تطبيقات isPhotoPickerAvailable(Context) الجديدة التي سيتم عرضها في حال توفّر "أداة اختيار الصور". (I55be6)

الإصدار 1.7.0-alpha03

11 كانون الثاني (يناير) 2023

تم طرح الإصدارات androidx.activity:activity:1.7.0-alpha03 وandroidx.activity:activity-compose:1.7.0-alpha03 وandroidx.activity:activity-ktx:1.7.0-alpha03. يحتوي الإصدار 1.7.0-alpha03 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تنفِّذ ComponentDialog الآن SavedStateRegistryOwner ولديها إذن بالوصول إلى SavedStateRegistry الخاصة به وتضبط SavedStateRegistryOwner لشجرة العرض. يمكن الآن استخدام Jetpack Compose ضِمن ComponentDialog لأنّها تستوفي كل من LifecycleOwner وSavedStateRegistryOwner المرفقَين بالنافذة من خلال متطلبات واجهات برمجة تطبيقات ViewTree. (Idca17، I73468 b/261162296)

التغييرات في واجهة برمجة التطبيقات

  • تمت إضافة عنصر ReportDrawn قابل للإنشاء يضع على الفور علامة على النشاط بأنّه جاهز للاتصال بـ reportFullyDrawn. (Ic5b14، b/259687964)

إحالات Kotlin الناجحة

  • تم تحويل الفئتَين ActvitiyResultCallback وOnBackPressedCallback إلى لغة Kotlin مع الحفاظ على التوافق مع البرامج الثنائية والمصدر. (Ifc5e5 وIde1b0 وb/257291701)

الإصدار 1.7.0-alpha02

24 تشرين الأول (أكتوبر) 2022

تم طرح الإصدارات androidx.activity:activity:1.7.0-alpha02 وandroidx.activity:activity-compose:1.7.0-alpha02 وandroidx.activity:activity-ktx:1.7.0-alpha02. يحتوي الإصدار 1.7.0-alpha02 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • من النشاط 1.6.1: تم إصلاح مشكلة عدم إطلاق عقد نتائج النشاط على PickMultipleVisualMedia على أجهزة Android R عند استخدام القيمة التلقائية لـ maxItems. (Ie2776، وb/249182130)

الإصدار 1.7.0-alpha01

5 تشرين الأول (أكتوبر) 2022

تم طرح الإصدارات androidx.activity:activity:1.7.0-alpha01 وandroidx.activity:activity-compose:1.7.0-alpha01 وandroidx.activity:activity-ktx:1.7.0-alpha01. يحتوي الإصدار 1.7.0-alpha01 على هذه عمليات التنفيذ.

واجهات برمجة تطبيقات FullyDrawnReporter

توفِّر ComponentActivity الآن مثيل FullyDrawnReporter يسمح لمكوّنات متعددة بالإبلاغ عندما تكون جاهزة للتفاعل. سينتظر "ComponentActivity" اكتمال جميع المكوّنات قبل طلب الرقم reportFullyDrawn() بالنيابة عنك. تراعي واجهات برمجة التطبيقات هذه متطلبات التوقيت نيابةً عنك ولا تحتاج إلى طلبها كجزء من استدعاء onDraw.

ننصح بتفعيل واجهات برمجة التطبيقات هذه:

  • إرسال إشارة إلى "وقت تشغيل Android" عند اكتمال بدء التشغيل، لضمان تضمين كل الرموز البرمجية التي يتم تشغيلها أثناء تسلسل بدء تشغيل متعدد الإطارات، وإعطاء الأولوية لتجميع البيانات في الخلفية
  • الإشارة إلى مقياس أداء الماكرو ومؤشرات Play الحيوية عندما يكون من المفترض أن يتم اعتبار تطبيقك قد تم رسمه بشكل كامل حسب مقاييس بدء التشغيل، حتى تتمكّن من تتبُّع الأداء

تمّت إضافة واجهتَي برمجة تطبيقات Activity Compose لتسهيل استخدام "FullyDrawnReporter" من عناصر فردية قابلة للإنشاء:

  • يأخذ ReportDrawnWhen إسنادًا (أي، list.count > 0) للإشارة إلى الوقت الذي يصبح فيه المحتوى القابل للإنشاء جاهزًا للتفاعل.
  • تستخدم ReportDrawnAfter طريقة تعليق، عند اكتمالها، تشير إلى استعدادك للتفاعل.

الإصدار 1.6.1

الإصدار 1.6.1

24 تشرين الأول (أكتوبر) 2022

تم طرح الإصدارات androidx.activity:activity:1.6.1 وandroidx.activity:activity-compose:1.6.1 وandroidx.activity:activity-ktx:1.6.1. يحتوي الإصدار 1.6.1 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • تم إصلاح مشكلة عدم إطلاق عقد نتيجة النشاط على جهاز PickMultipleVisualMedia على أجهزة Android R عند استخدام القيمة التلقائية لـ maxItems. (Ie2776، وb/249182130)

الإصدار 1.6.0

الإصدار 1.6.0

21 أيلول (سبتمبر) 2022

تم طرح الإصدارات androidx.activity:activity:1.6.0 وandroidx.activity:activity-compose:1.6.0 وandroidx.activity:activity-ktx:1.6.0. يحتوي الإصدار 1.6.0 على هذه الالتزامات.

تغييرات مهمة منذ الإصدار 1.5.0

  • تمت إضافة ActivityResultContracts.PickVisualMedia وActivityResultContracts.PickMultipleVisualMedia لتوفير عقد متوافق مع الأنظمة القديمة يستخدم MediaStore.ACTION_PICK_IMAGES عند توفّر أداة اختيار الصور، وIntent.ACTION_OPEN_DOCUMENT عندما لا تكون متاحة.
  • تم دمج OnBackInvokedCallback في Android 13 مع OnBackPressedDispatchers المقدَّم من ComponentActivity وComponentDialog. ويضمن ذلك عمل جميع واجهات برمجة التطبيقات المستنِدة إلى OnBackPressedDispatcher عند تفعيل إيماءة رجوع قائمة على التوقّعات.

الإصدار 1.6.0-rc02

7 أيلول (سبتمبر) 2022

تم طرح الإصدارات androidx.activity:activity:1.6.0-rc02 وandroidx.activity:activity-compose:1.6.0-rc02 وandroidx.activity:activity-ktx:1.6.0-rc02. يحتوي الإصدار 1.6.0-rc02 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • يسجِّل OnBackPressedDispatcher الآن OnBackInvokedCallback باستخدام PRIORITY_DEFAULT بدلاً من PRIORITY_OVERLAY. (I3901f)
  • سيتم الآن إرسال كل من استدعاءَي onMultiWindowModeChanged() للصفوف التي تمتد إلى ComponentActivity. (Ic4d85)
  • لن تعرض ActivityResultRegistry أي نتيجة بعد الآن إلى ActivityResultCallback عندما يؤدي الاستدعاء launch إلى عرض أي Exception وتم تسجيل رد الاتصال بدون LifecycleOwner. (Ia7ff7، b/238350794)
  • ستعمل ميزة "ComponentActivity" الآن على إرسال طلبات القائمة بشكل صحيح بدون الحاجة إلى استدعاء الوظيفة الفائقة في نشاطك. (Ie33c5، وb/238057118)

تعديل بشأن التبعية

الإصدار 1.6.0-rc01

24 آب (أغسطس) 2022

تم طرح الإصدارات androidx.activity:activity:1.6.0-rc01 وandroidx.activity:activity-compose:1.6.0-rc01 وandroidx.activity:activity-ktx:1.6.0-rc01. يحتوي الإصدار 1.6.0-rc01 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • لن يؤدي إعداد OnBackPressedDispatcher إلى حدوث ClassVerificationError بعد الآن عند استخدام إصدارات حزمة تطوير البرامج (SDK) الأقدم 33. (Ic32e1)
  • سيتم دائمًا إرسال استدعاءات الصفوف الدراسية التي تلغي استدعاء onPictureInPictureModeChanged() لـ ComponentActivity. (Ib7fdb)

الإصدار 1.6.0-beta01

10 آب (أغسطس) 2022

تم طرح الإصدارات androidx.activity:activity:1.6.0-beta01 وandroidx.activity:activity-compose:1.6.0-beta01 وandroidx.activity:activity-ktx:1.6.0-beta01. يحتوي الإصدار 1.6.0-beta01 على هذه الالتزامات.

التغييرات في واجهة برمجة التطبيقات

  • تم وضع علامة على الطريقتَين startActivityForResult وstartIntentSenderForResult المتوقّفتَين في ComponentActivity باستخدام @NonNull لأنّ اجتياز null يؤدي دائمًا إلى حدوث عطل. (Id2a25، b/231476082)

إصلاح الأخطاء

  • من النشاط 1.5.1: لن يعرض ActivityResultRegistry بعد ذلك نتيجة إلى ActivityResultCallback عند طرح مكالمة launch لأي Exception وتم تسجيل معاودة الاتصال بدون LifecycleOwner. (Ia7ff7، b/238350794)
  • من النشاط 1.5.1: سيرسل ComponentActivity الآن طلبات القائمة بشكل صحيح إلى عمليات إلغاء onPrepareOptionMenu() وonCreateOptionsMenu() وonOptionsItemSelected() بدون الحاجة إلى استدعاء الوظيفة الفائقة. (Ie33c5، وb/238057118)

تعديل بشأن التبعية

الإصدار 1.6.0-alpha05

15 حزيران (يونيو) 2022

تم طرح الإصدارات androidx.activity:activity:1.6.0-alpha05 وandroidx.activity:activity-compose:1.6.0-alpha05 وandroidx.activity:activity-ktx:1.6.0-alpha05. تم تطوير الإصدار 1.6.0-alpha05 في فرع خاص قبل الإصدار التجريبي وليس هناك أي التزامات عامة.

التغييرات في واجهة برمجة التطبيقات

  • أصبح minCompileSdk الآن 33 ليتوافق مع حزمة تطوير البرامج (SDK) للإصدار التجريبي 3 من Tiramisu

إصلاح الأخطاء

  • تم إصلاح التعطُّل على الأجهزة القديمة عند البحث عن إضافة حزمة تطوير البرامج (SDK) PickVisualMedia لـ ActivityResultContract حتى يعمل الآن مع ACTION_OPEN_DOCUMENT على الأجهزة التي تعمل بنظام التشغيل Android 10 والإصدارات الأقدم.

الإصدار 1.6.0-alpha04

18 أيار (مايو) 2022

تم طرح androidx.activity:activity:1.6.0-alpha04 وandroidx.activity:activity-ktx:1.6.0-alpha04.

إصلاح الأخطاء

  • تم إصلاح خطأ في PickVisualMediaRequest حيث كانت محاولة إنشاء طلب، إما من خلال أداة إنشاء المواقع أو دالة Kotlin ذات المستوى الأعلى، تؤدي إلى تجاوز سعة تسلسل استدعاء الدوال البرمجية.
  • تم دمج OnBackInvokedCallback في الإصدار التجريبي 2 من Android 13 Dev في OnBackPressedDispatcher المقدَّم من ComponentDialog. ويضمن ذلك أن تعمل جميع واجهات برمجة التطبيقات المستنِدة إلى OnBackPressedDispatcher عند تفعيل إيماءة الرجوع على التوقّعات.

الإصدار 1.6.0-alpha03

‫27 نيسان (أبريل) 2022

تم طرح الإصدارات androidx.activity:activity:1.6.0-alpha03 وandroidx.activity:activity-compose:1.6.0-alpha03 وandroidx.activity:activity-ktx:1.6.0-alpha03.

  • ملاحظة: لن يتم تجميع هذا الإصدار إلا مع حزمة تطوير البرامج (SDK) التجريبية 1 للمطوّرين لنظام التشغيل Android 13.

الميزات الجديدة

  • تمت إضافة ActivityResultContracts.PickVisualMedia وActivityResultContracts.PickMultipleVisualMedia لتوفير عقد متوافق مع الأنظمة القديمة يستخدم MediaStore.ACTION_PICK_IMAGES عند توفّر أداة اختيار الصور، وIntent.ACTION_OPEN_DOCUMENT عندما لا تكون متاحة.
  • تم دمج OnBackInvokedCallback في الإصدار التجريبي 1 من Android 13 Dev في OnBackPressedDispatcher المقدَّم من ComponentActivity. ويضمن ذلك أن تعمل جميع واجهات برمجة التطبيقات المستنِدة إلى OnBackPressedDispatcher عند تفعيل إيماءة الرجوع على التوقّعات.

الإصدار 1.6.0-alpha01

23 آذار (مارس) 2022

تم طرح الإصدارات androidx.activity:activity:1.6.0-alpha01 وandroidx.activity:activity-compose:1.6.0-alpha01 وandroidx.activity:activity-ktx:1.6.0-alpha01.

  • ملاحظة: سيتم تجميع هذا الإصدار مع حزمة تطوير البرامج (SDK) الخاصة بمعاينة المطوّرين 2 لنظام التشغيل Android 13 فقط.

الميزات الجديدة

  • تم دمج التغييرات في الإصدار 2 من "معاينة مطوّري البرامج من Android 13" في "ComponentActivity".

الإصدار 1.5.1

الإصدار 1.5.1

27 تموز (يوليو) 2022

تم طرح الإصدارات androidx.activity:activity:1.5.1 وandroidx.activity:activity-compose:1.5.1 وandroidx.activity:activity-ktx:1.5.1. يحتوي الإصدار 1.5.1 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • لن تعرض ActivityResultRegistry أي نتيجة إلى ActivityResultCallback عند ظهور أي Exception نتيجة استدعاء launch()، وتم تسجيل معاودة الاتصال بدون LifecycleOwner. (Ia7ff7، b/238350794)

  • سيرسل ComponentActivity الآن طلبات القائمة بشكل صحيح إلى عمليات الإلغاء onPrepareOptionMenu() وonCreateOptionsMenu() وonOptionsItemSelected() بدون الحاجة إلى استدعاء الدالة الفائقة. (Ie33c5، وb/238057118)

تعديل بشأن التبعية

الإصدار 1.5.0

الإصدار 1.5.0

29 حزيران (يونيو) 2022

تم طرح الإصدارات androidx.activity:activity:1.5.0 وandroidx.activity:activity-compose:1.5.0 وandroidx.activity:activity-ktx:1.5.0. يحتوي الإصدار 1.5.0 على عمليات الالتزام هذه.

تغييرات مهمة منذ الإصدار 1.4.0

  • ComponentDialog - ComponentDialog هي فئة فرعية من Dialog تشتمل على OnBackPressedDispatcher سيتم استدعاؤها عند الضغط على زر الرجوع في النظام وظهور مربع الحوار. والأهم من ذلك أنّ هذه الفئة الفرعية تضبط أيضًا ViewTreeOnBackPressedDispatcherOwner، ما يتيح طريقة العرض العامة لاسترداد المُرسِل الصحيح سواءً كان في ComponentActivity أو ComponentDialog.
  • واجهات معاودة الاتصال - تنفِّذ ComponentActivity الآن مجموعة من واجهات معاودة الاتصال النموذجية التي يمكن استخدامها بدلاً من استدعاءات Activity. تتضمّن هذه الواجهات ما يلي: OnNewIntentProvider وOnConfigurationChangedProvider وOnTrimMemoryProvider وOnPictureInPictureModeChangedProvider وOnMultiWindowModeChangedProvider.
  • CreationExtras Integration: أصبح بإمكان ComponentActivity الآن توفير ViewModelProvider.Factory بدون حالة عبر CreationExtras في دورة الحياة 2.5.0.

التغييرات الأخرى

  • تم إيقاف دالة إنشاء المعلَمات لـ ActivityResultContracts.CreateDocument نهائيًا واستبدالها بدالة إنشائية جديدة تستخدم نوع MIME ملموسًا (مثل "image/png") كما هو مطلوب من Intent.ACTION_CREATE_DOCUMENT.

الإصدار 1.5.0-rc01

11 أيار (مايو) 2022

تم طرح إصدارات androidx.activity:activity:1.5.0-rc01 وandroidx.activity:activity-compose:1.5.0-rc01 وandroidx.activity:activity-ktx:1.5.0-rc01 بدون أي تغييرات من الإصدارات 1.5.0-beta01. يحتوي الإصدار 1.5.0-rc01 على هذه عمليات التنفيذ.

الإصدار 1.5.0-beta01

20 نيسان (أبريل) 2022

تم طرح الإصدارات androidx.activity:activity:1.5.0-beta01 وandroidx.activity:activity-compose:1.5.0-beta01 وandroidx.activity:activity-ktx:1.5.0-beta01. يحتوي الإصدار 1.5.0-beta01 على هذه الالتزامات.

التعديلات المتعلقة بالاعتمادية

الإصدار 1.5.0-alpha05

6 نيسان (أبريل) 2022

تم طرح الإصدارات androidx.activity:activity:1.5.0-alpha05 وandroidx.activity:activity-compose:1.5.0-alpha05 وandroidx.activity:activity-ktx:1.5.0-alpha05. يحتوي الإصدار 1.5.0-alpha05 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • يستدعي جهاز onPanelClosed() في "ComponentActivity" الآن السمة onPanelClosed() الفائقة أيضًا، ما يؤدي إلى إصلاح مشكلة عدم استدعاء طريقة onContextMenuClosed. (Ib6f77)

الإصدار 1.5.0-alpha04

23 آذار (مارس) 2022

تم طرح الإصدارات androidx.activity:activity:1.5.0-alpha04 وandroidx.activity:activity-compose:1.5.0-alpha04 وandroidx.activity:activity-ktx:1.5.0-alpha04. يحتوي الإصدار 1.5.0-alpha04 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • يتيح SavedStateViewFactory الآن استخدام CreationExtras حتى عند إعداده باستخدام SavedStateRegistryOwner. وفي حال توفير إضافات، يتم تجاهل الوسيطات التي تم إعدادها. (I6c43b، b/224844583)

الإصدار 1.5.0-alpha03

23 شباط (فبراير) 2022

تم طرح الإصدارات androidx.activity:activity:1.5.0-alpha03 وandroidx.activity:activity-compose:1.5.0-alpha03 وandroidx.activity:activity-ktx:1.5.0-alpha03. يحتوي الإصدار 1.5.0-alpha03 على هذه عمليات التنفيذ.

التغييرات في واجهة برمجة التطبيقات

  • يمكنك الآن تمرير CreationExtras إلى دالة النشاط by viewModels() (I6a3e6، b/217600303)

الإصدار 1.5.0-alpha02

9 شباط (فبراير) 2022

تم طرح الإصدارات androidx.activity:activity:1.5.0-alpha02 وandroidx.activity:activity-compose:1.5.0-alpha02 وandroidx.activity:activity-ktx:1.5.0-alpha02. يحتوي الإصدار 1.5.0-alpha02 على هذه عمليات التنفيذ.

الميزات الجديدة

  • ينفِّذ ComponentActivity الآن واجهة OnPictureInPictureModeChangedProvider للسماح لأي مكوِّن بتلقّي أحداث تغيير وضع "نافذة ضمن النافذة". (I9f567)
  • ينفِّذ ComponentActivity الآن واجهة OnMultiWindowModeChangedProvider للسماح لأي مكوِّن بتلقي أحداث تغيير وضع النوافذ المتعددة. (I62d91)

الإصدار 1.5.0-alpha01

26 يناير 2022

تم طرح الإصدارات androidx.activity:activity:1.5.0-alpha01 وandroidx.activity:activity-compose:1.5.0-alpha01 وandroidx.activity:activity-ktx:1.5.0-alpha01. يحتوي الإصدار 1.5.0-alpha01 على هذه عمليات التنفيذ.

الميزات الجديدة

  • يمكن دمج "ComponentActivity" الآن مع ViewModel CreationExtras، والذي تم تقديمه كجزء من رحلة المستخدِم 2.5.0-alpha01. (Ie7e00، وb/207012584)
  • تمت إضافة ComponentDialog، وهي فئة فرعية من Dialog تتضمن OnBackPressedDispatcher سيتم طلبها عند الضغط على زر الرجوع في النظام عند ظهور مربّع الحوار. والأهم من ذلك أنّ هذه الفئة الفرعية تضبط أيضًا ViewTreeOnBackPressedDispatcherOwner، ما يسمح للعروض العامة باسترداد مُرسِل صحيح، سواء كان في ComponentActivity أو ComponentDialog. (I8a1bc)
  • تنفِّذ ComponentActivity الآن واجهة OnNewIntentProvider الجديدة للسماح لأي مكوِّن بتلقي هذه الأحداث. (If1f8b)
  • تنفِّذ ComponentActivity الآن واجهة OnConfigurationChangedProvider الجديدة للسماح لأي مكوِّن بتلقي هذه الأحداث. (If623b)
  • تنفِّذ ComponentActivity الآن واجهة OnTrimMemoryProvider الجديدة للسماح لأي مكوّن بتلقّي هذه الأحداث. (Ia9295)

التغييرات في واجهة برمجة التطبيقات

  • تم إيقاف دالة إنشاء المعلَمات لـ ActivityResultContracts.CreateDocument نهائيًا واستبدالها بدالة إنشاء جديدة تستخدم نوع MIME ملموسًا (على سبيل المثال، "image/png") كما هو مطلوب بموجب "Intent.ACTION_CREATE_DOCUMENT". (I2bec6)
  • يمكن الآن استرداد OnBackPressedDispatcherOwner المرتبطة بملف شخصي من خلال ViewTreeOnBackPressedDispatcherOwner، بدلاً من الاعتماد على بث Context. (I74685)

إصلاح الأخطاء

  • تم إصلاح عطل عند الوصول إلى ViewModel لأول مرة من معاودة الاتصال على registerForActivityResult() أو عمليات معاودة الاتصال إلى LifecycleObserver تمت إضافتها كجزء من init من ComponentActivity. (Ife83f)

الإصدار 1.4.0

الإصدار 1.4.0

27 تشرين الأول (أكتوبر) 2021

تم طرح الإصدارات androidx.activity:activity:1.4.0 وandroidx.activity:activity-compose:1.4.0 وandroidx.activity:activity-ktx:1.4.0. يحتوي الإصدار 1.4.0 على عمليات الالتزام هذه.

تغييرات مهمة منذ الإصدار 1.3.0

  • ينفذ AndroidX ComponentActivity الآن واجهة MenuHost. يسمح ذلك لأي مكوِّن بإضافة عناصر القائمة إلى ActionBar عن طريق إضافة مثيل MenuProvider إلى النشاط. يمكن إضافة كل MenuProvider بشكل اختياري باستخدام Lifecycle الذي سيتحكّم تلقائيًا في إمكانية ظهور عناصر القائمة هذه استنادًا إلى حالة Lifecycle وسيعالج عملية إزالة MenuProvider عند إتلاف Lifecycle.
  • تمت إعادة كتابة الفئة ActivityResultContract في Kotlin للتأكّد من أنّ المطوّرين الذين يكتبون عقودًا مخصّصة في Kotlin يمكنهم تحديد قابلية القيم الفارغة الصحيحة لفئات الإدخال والمخرجات الخاصة بهم.
  • تمت إعادة كتابة الفئة ActivityResultContracts والعقود الخاصة بها في Kotlin لضمان قابلية القيم الفارغة بشكل صحيح.

الإصدار 1.4.0-rc01

13 تشرين الأول (أكتوبر) 2021

تم طرح الإصدارات androidx.activity:activity:1.4.0-rc01 وandroidx.activity:activity-compose:1.4.0-rc01 وandroidx.activity:activity-ktx:1.4.0-rc01. يحتوي الإصدار 1.4.0-rc01 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • لن تعرض ActivityResultRegistry بعد ذلك أي نتيجة إلى ActivityResultCallback عند طرح طلب launch لأي Exception. (If4f91 وb/200845664)

الإصدار 1.4.0-beta01

29 أيلول (سبتمبر) 2021

تم طرح الإصدارات androidx.activity:activity:1.4.0-beta01 وandroidx.activity:activity-compose:1.4.0-beta01 وandroidx.activity:activity-ktx:1.4.0-beta01. يحتوي الإصدار 1.4.0-beta01 على عمليات التنفيذ هذه.

التغييرات في واجهة برمجة التطبيقات

  • تم إصلاح نوع ActivityResultContracts.OpenMultipleDocuments و ActivityResultContracts.GetMultipleContents اللذين تسببا في ذلك باستخدام نوع ناتج List<? extends Uri> عند استخدام الرمز من لغة برمجة Java. (If71de)
  • يمكن الآن الوصول إلى الثوابت العامة في فئات ActivityResultContracts.StartActivityForResult وActivityResultContracts.StartIntentSenderForResult وActivityResultContracts.RequestMultiplePermissions عند استخدام لغة Kotlin من خلال كائنات Companion المتاحة للجميع الآن. (aosp/1832555)

آخر التعديلات على المستندات

  • تم توسيع رسالة إيقاف واجهات برمجة التطبيقات (API) التي تعالجها واجهات برمجة تطبيقات نتائج الأنشطة، وهي startActivityForResult وstartIntentSenderForResult وonActivityResult وrequestPermissions وonRequestPermissionsResult، بمزيد من التفاصيل. (cce80f)

الإصدار 1.4.0-alpha02

15 أيلول (سبتمبر) 2021

تم طرح الإصدارات androidx.activity:activity:1.4.0-alpha02 وandroidx.activity:activity-compose:1.4.0-alpha02 وandroidx.activity:activity-ktx:1.4.0-alpha02. يحتوي الإصدار 1.4.0-alpha02 على هذه عمليات التنفيذ.

الميزات الجديدة

التغييرات في واجهة برمجة التطبيقات

  • تمت إعادة كتابة الفئة ActivityResultContract في Kotlin للتأكّد من أنّ المطوّرين الذين يكتبون عقودًا مخصّصة في Kotlin يمكنهم تحديد قابلية القيم الفارغة الصحيحة لفئات المدخلات والمخرجات. (I8a8f5)
  • تمت إعادة كتابة الفئة ActivityResultContracts وعقودها في Kotlin لضمان قابلية القيم الفارغة بشكل صحيح. (I69802)

الإصدار 1.4.0-alpha01

1 أيلول (سبتمبر) 2021

تم طرح الإصدارات androidx.activity:activity:1.4.0-alpha01 وandroidx.activity:activity-compose:1.4.0-alpha01 وandroidx.activity:activity-ktx:1.4.0-alpha01. يحتوي الإصدار 1.4.0-alpha01 على هذه عمليات التنفيذ.

الميزات الجديدة

  • ينفذ AndroidX ComponentActivity الآن واجهة MenuHost. يسمح ذلك لأي مكوِّن بإضافة عناصر القائمة إلى ActionBar عن طريق إضافة مثيل MenuProvider إلى النشاط. يمكن إضافة كل MenuProvider بشكل اختياري باستخدام Lifecycle الذي سيتحكّم تلقائيًا في إمكانية ظهور عناصر القائمة هذه استنادًا إلى حالة Lifecycle وسيعالج عملية إزالة MenuProvider عند إتلاف Lifecycle. (I3b608):
/**
  * Using the addMenuProvider() API directly in your Activity
  **/
class ExampleActivity : ComponentActivity(R.layout.activity_example) {

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    // Add menu items without overriding methods in the Activity
   addMenuProvider(object : MenuProvider {
      override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
        // Add menu items here
        menuInflater.inflate(R.menu.example_menu, menu)
      }

      override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
        // Handle the menu selection
        return true
      }
    })
  }
}

/**
  * Using the addMenuProvider() API in a Fragment
  **/
class ExampleFragment : Fragment(R.layout.fragment_example) {

  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    // The usage of an interface lets you inject your own implementation
    val menuHost: MenuHost = requireActivity()
  
    // Add menu items without using the Fragment Menu APIs
    // Note how we can tie the MenuProvider to the viewLifecycleOwner
    // and an optional Lifecycle.State (here, RESUMED) to indicate when
    // the menu should be visible
    menuHost.addMenuProvider(object : MenuProvider {
      override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
        // Add menu items here
        menuInflater.inflate(R.menu.example_menu, menu)
      }

      override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
        // Handle the menu selection
        return true
      }
    }, viewLifecycleOwner, Lifecycle.State.RESUMED)
  }

تغييرات السلوك

  • سيرسِل ActivityResultRegistry الآن الرمز IllegalStateException عند محاولة الاتصال بـ launch() على ActivityResultLauncher غير مسجَّل أو غير مسجَّل. (Ida75d، b/192567522)

مساهمة خارجية

  • شكرًا dmitrilc على إصلاح خطأ إملائي في مستندات ActivityResult. (#221)

الإصدار 1.3.1

الإصدار 1.3.1

4 آب (أغسطس) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.1 وandroidx.activity:activity-compose:1.3.1 وandroidx.activity:activity-ktx:1.3.1. يحتوي الإصدار 1.3.1 على عمليات الالتزام هذه.

التعديلات المتعلقة بالاعتمادية

  • يعتمد النشاط الآن على لغة 1.5.21 بلغة Kotlin.
  • تعتمد ميزة "إنشاء النشاط" الآن على رمز الإنشاء 1.0.1.

الإصدار 1.3.0

الإصدار 1.3.0

28 تموز (يوليو) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0 وandroidx.activity:activity-compose:1.3.0 وandroidx.activity:activity-ktx:1.3.0. يحتوي الإصدار 1.3.0 على هذه عمليات التنفيذ.

تغييرات مهمة منذ الإصدار 1.2.0

  • العناصر في ميزة "إنشاء الأنشطة": توفّر عناصر activity-compose طريقة الإضافة setContent لاستضافة واجهة مستخدم Jetpack Compose ضِمن نشاط وإنشاء برامج تضمين محدَّدة للتفاعل مع واجهات برمجة تطبيقات ComponentActivity للتعامل مع زر الرجوع في النظام وواجهات برمجة التطبيقات لنتائج النشاط. راجِع المستندات لمزيد من التفاصيل.
  • عقد CaptureVideo: يحلّ ActivityResultContract CaptureVideo محلّ عقد TakeVideo الذي تم إيقافه نهائيًا، ويعرض قيمة منطقية تشير إلى نجاح العديد من تطبيقات الكاميرا.
  • تتبُّع عرض تلميح الصورة - يمكن لمستخدمي activity-ktx الآن استخدام طريقة الإضافة trackPipAnimationHintView على Activity لإعادة إنشاء PictureInPictureParams تلقائيًا بموضع جديد للعرض عند تغيير موضعه بالنسبة إلى النافذة.

الإصدار 1.3.0-rc02

14 يوليو 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0-rc02 وandroidx.activity:activity-compose:1.3.0-rc02 وandroidx.activity:activity-ktx:1.3.0-rc02. يحتوي الإصدار 1.3.0-rc02 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • تم الآن حفظ استدعاءات ActivityResultRegistry واستعادتها بشكل صحيح لذلك لا يتم تكرار استدعاءات الاستدعاء في SaveState. (I97816، b/191893160)

الإصدار 1.3.0-rc01

1 تموز (يوليو) 2021

تم طرح ميزات androidx.activity:activity:1.3.0-rc01 وandroidx.activity:activity-compose:1.3.0-rc01 وandroidx.activity:activity-ktx:1.3.0-rc01 بدون أي تغييرات من 1.3.0-beta02. يحتوي الإصدار 1.3.0-rc01 على هذه عمليات التنفيذ.

الإصدار 1.3.0-beta02

16 حزيران (يونيو) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0-beta02 وandroidx.activity:activity-compose:1.3.0-beta02 وandroidx.activity:activity-ktx:1.3.0-beta02. يحتوي الإصدار 1.3.0-beta02 على عمليات التنفيذ هذه.

تم تعديل الجدول "activity-compose" لكي يعتمد على "إنشاء" 1.0.0-beta09. تعتمد الدالة androidx.compose.ui:ui-test-junit4 الآن على وقت التجميع على activity-compose.

الإصدار 1.3.0-beta01

2 حزيران (يونيو) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0-beta01 وandroidx.activity:activity-compose:1.3.0-beta01 وandroidx.activity:activity-ktx:1.3.0-beta01. يحتوي الإصدار 1.3.0-beta01 على عمليات التنفيذ هذه.

التغييرات في واجهة برمجة التطبيقات

  • وتمت إزالة طريقة @Composable registerForActivityResult() التي تم إيقافها نهائيًا في السابق. يُرجى استخدام rememberLauncherForActivityResult(). (Ic39d3)

الإصدار 1.3.0-alpha08

18 أيار (مايو) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0-alpha08 وandroidx.activity:activity-compose:1.3.0-alpha08 وandroidx.activity:activity-ktx:1.3.0-alpha08. يحتوي الإصدار 1.3.0-alpha08 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تعرض علامة ActivityResultContract الجديدة CaptureVideo قيمة منطقية إلى ActivityResultCallback تشير إلى ما إذا كان قد تم حفظ الفيديو بنجاح في معرّف الموارد المنتظم (URI) المحدّد. سيحلّ هذا الحلّ محلّ عقد TakeVideo المتوقّف حاليًا، لأنّ تطبيقات الكاميرا نادرًا ما تتيح عرض صورة نقطية، ما يجعل النتيجة غير مفيدة. (Ie21f2، b/185938070)
  • تمت إضافة Activity#setPipAnimationHintView واجهة برمجة تطبيقات جديدة لتعديل تلميح مستطيل مصدر PipParams كلما تم نقل طريقة العرض. (I9063d)

التغييرات في واجهة برمجة التطبيقات

  • تعرض الدالة rememberLauncherForActivityResult الآن مشغّلاً يوقف الوظيفة unregister() نهائيًا، وتتم معالجة عملية التسجيل وإلغاء تسجيل مشغّل التطبيقات تلقائيًا بواسطة rememberLauncherForActivityResult. (I2443e)

التوافق مع إنشاء الرسائل

  • يتوافق "androidx.activity:activity-compose:1.3.0-alpha08" فقط مع الإصدار 1.0.0-beta07 والإصدارات الأحدث من ميزة إنشاء الرسائل.

الإصدار 1.3.0-alpha07

21 نيسان (أبريل) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0-alpha07 وandroidx.activity:activity-compose:1.3.0-alpha07 وandroidx.activity:activity-ktx:1.3.0-alpha07. يحتوي الإصدار 1.3.0-alpha07 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • تعرض rememberLauncherForActivityResult الآن مرجعًا ثابتًا لمثيل ActivityResultLauncher نفسه حتى إذا تغيّر العقد بسبب إعادة التركيب. (Id2d6d)
  • إنّ استخدام إصدارات غير مستقرة من أجزاء أعلى من 1.3.0 لن يعرض بعد الآن رسالة خطأ موجب خاطئ تطلب منك استخدام 1.3.0. (aosp/1670206، b/184847092)

الإصدار 1.3.0-alpha06

7 نيسان (أبريل) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0-alpha06 وandroidx.activity:activity-compose:1.3.0-alpha06 وandroidx.activity:activity-ktx:1.3.0-alpha06. يحتوي الإصدار 1.3.0-alpha06 على هذه عمليات التنفيذ.

التغييرات في واجهة برمجة التطبيقات

  • تمت إعادة تسمية واجهة برمجة التطبيقات registerForActivityResult() لتصبح rememberLauncherForActivityResult() للإشارة بشكل أفضل إلى أنّ ActivityResultLauncher المعروض هو عنصر مُدار يتم تذكّره نيابةً عنك. عند محاولة استدعاء الدالة unregister، ستظهر رسالة خطأ عند محاولة استدعاء الدالة ActivityResultLauncher التي تم إرجاعها. (I2bb6d)
  • يعرض كل من LocalOnBackPressedDispatcherOwner.current وLocalActivityResultRegistryOwner.current الآن قيمة قابلة للقيم الفارغة لتحديد ما إذا كانت متوفرة في المقطوعة الموسيقية الحالية بشكل أفضل. أما واجهات برمجة التطبيقات التي تتطلّب واجهات برمجة التطبيقات، مثل BackHandler وrememberLauncherForActivityResult()، على التوالي، فستعرض الآن رسالة خطأ وصفية إذا لم يتم العثور على المالك الأساسي. تعمل NavHost الآن حتى في حال عدم العثور على OnBackPressedDispatcherOwner، ينطبق ذلك عند معاينة NavHost. (I7d8b4)

إصلاح الأخطاء

  • سيعترض BackHandler الآن الضغطات مرة أخرى بشكل صحيح في حال كانت قيمة النشاط STOPPED، ثم STARTED مرة أخرى، وتمت إضافة طلبات معاودة الاتصال الأخرى من خلال LifecycleOwner. (I71de6، b/182284739)
  • إنّ استخدام إضافة الطريقة launch() مع عنصر ActivityResultContract مخصّص والذي يتضمن إدخال Unit لن يتسبب بعد الآن في حدوث NullPointerException (I76282، b/183837954)

الإصدار 1.3.0-alpha05

24 آذار (مارس) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0-alpha05 وandroidx.activity:activity-compose:1.3.0-alpha05 وandroidx.activity:activity-ktx:1.3.0-alpha05. يحتوي الإصدار 1.3.0-alpha05 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • من النشاط 1.2.2: تم إصلاح مشكلة في فحص أداة Lint InvalidFragmentVersionForActivityResult وأدت إلى ظهور موجب خاطئ عند استخدام الجزء 1.3.1 أو إصدار أحدث. (I54da1، b/182388985)
  • من النشاط 1.2.2: يتجنّب ComponentActivity الآن ClassNotFoundException عند تشغيل Intent من ActivityResultContract تم اعتباره سابقًا كعنصر إضافي في Intent آخر. (Ieff05، b/182906230)

التحديثات المتعلقة بالاعتمادية

الإصدار 1.3.0-alpha04

10 آذار (مارس) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0-alpha04 وandroidx.activity:activity-compose:1.3.0-alpha04 وandroidx.activity:activity-ktx:1.3.0-alpha04. يحتوي الإصدار 1.3.0-alpha04 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • من النشاط 1.2.1: تعرض RequestMultiplePermissions الآن دائمًا نتائج لجميع الأذونات المطلوبة بدلاً من عرض الأذونات التي لم يتم منحها مسبقًا. (I50bc3، b/180884668)
  • من النشاط 1.2.1: تضمن ActivityResultRegistry الآن أنّ طلبات launch() قيد التقدّم ستعرض نتائجها حتى إذا unregister()، ثم register() مرة أخرى باستخدام المفتاح نفسه. (I9ef34، b/181267562)
  • لم تعد ميزة "إنشاء النشاط" تضيف تبعيات الاختبار إلى مسار فئة بيئة التشغيل. (Ifd8b3)
  • تم إصلاح مشكلة في "BackHandler" كانت لا تزال متغيرة "onBack" التي تم ضبطها في السابق مُستخدَمة بعد إعادة التركيب. (8eb5eb)

الإصدار 1.3.0-alpha03

24 شباط (فبراير) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0-alpha03 وandroidx.activity:activity-compose:1.3.0-alpha03 وandroidx.activity:activity-ktx:1.3.0-alpha03. يحتوي الإصدار 1.3.0-alpha03 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تتوفّر الآن الدالة registerForActivityResult القابلة للإنشاء للحصول على نتائج من الأنشطة داخل العناصر القابلة للإنشاء. (Ia7851، b/172690553)

التغييرات في واجهة برمجة التطبيقات

  • تتضمّن LocalOnBackPressedDispatcherOwner الآن دوال provides التي يمكن استخدامها مع CompositionLocalProvider، لتحلّ محلّ asProvidableCompositionLocal() API. (I45d24)

الإصدار 1.3.0-alpha02

10 شباط (فبراير) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0-alpha02 وandroidx.activity:activity-compose:1.3.0-alpha02 وandroidx.activity:activity-ktx:1.3.0-alpha02. يحتوي الإصدار 1.3.0-alpha02 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • تم إصلاح مشكلة في ميزة "إنشاء النشاط" 1.3.0-alpha01 تتسبّب في استثناء NoSuchMethodError: No static method setContent عند استخدام ميزة "إنشاء" 1.0.0-alpha12. يجب أن يعتمد جميع مستخدمي Compose على 1.3.0-alpha02 والإصدارات الأحدث. (b/179911234)

التغييرات في واجهة برمجة التطبيقات

  • يمكن استخدام BackHandler API للسماح لـ Composable باعتراض زر الرجوع في النظام. (I58ed5، b/172154006)

الإصدار 1.3.0-alpha01

10 شباط (فبراير) 2021

تم طرح الإصدارات androidx.activity:activity:1.3.0-alpha01 وandroidx.activity:activity-compose:1.3.0-alpha01 وandroidx.activity:activity-ktx:1.3.0-alpha01. يحتوي الإصدار 1.3.0-alpha01 على هذه عمليات التنفيذ.

الميزات الجديدة

  • توفّر عناصر activity-compose الجديدة أدوات مساعدة محدَّدة في Jetpack Compose لواجهات برمجة تطبيقات androidx.activity المحدَّدة.
    • تم نقل "ComponentActivity.setContent" من androidx.compose.ui.platform.setContent إلى androidx.activity.compose.setContent. (Icf416)

المشاكل المعروفة

  • سيؤدي استخدام ميزة "إنشاء النشاط" 1.3.0-alpha01 والمكتبات التي تعتمد عليها، مثل androidx.compose.ui:ui-test-junit4:1.0.0-alpha12، إلى استثناء NoSuchMethodError: No static method setContent. (b/179911234)

الإصدار 1.2.4

الإصدار 1.2.4

21 يوليو 2021

تم طرح androidx.activity:activity:1.2.4 وandroidx.activity:activity-ktx:1.2.4. يحتوي الإصدار 1.2.4 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • من النشاط 1.3.0-rc02: يتم الآن حفظ استدعاءات ActivityResultRegistry بشكل صحيح واستعادتها بحيث لا يتم تكرار استدعاءات الاستدعاء في savedState. (I97816، b/191893160)

الإصدار 1.2.3

الإصدار 1.2.3

5 أيار (مايو) 2021

تم طرح androidx.activity:activity:1.2.3 وandroidx.activity:activity-ktx:1.2.3. يحتوي الإصدار 1.2.3 على هذه الالتزامات.

إصلاح الأخطاء

  • إنّ استخدام إضافة الطريقة launch() مع عنصر ActivityResultContract مخصّص والذي يتضمن إدخال Unit لن يتسبب بعد الآن في حدوث NullPointerException (I76282، b/183837954)
  • تم إصلاح خطأ الوبر الموجب الخاطئ الذي يطالبك باستخدام جزء 1.3.0 عند استخدام لقطة أو إصدار ألفا أو إصدار تجريبي أو ميزة RC من إصدار أحدث من "الأجزاء". (f4a57e، وb/184847092)

الإصدار 1.2.2

الإصدار 1.2.2

24 آذار (مارس) 2021

تم طرح androidx.activity:activity:1.2.2 وandroidx.activity:activity-ktx:1.2.2. يحتوي الإصدار 1.2.2 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • تم إصلاح مشكلة في فحص أداة Lint InvalidFragmentVersionForActivityResult أدّت إلى ظهور موجبة خاطئة عند استخدام الجزء 1.3.1 أو إصدار أحدث. (I54da1، b/182388985)
  • يتجنّب ComponentActivity الآن ClassNotFoundException عند إطلاق Intent من ActivityResultContract الذي تم إدراجه سابقًا كعنصر إضافي في Intent آخر. (Ieff05، b/182906230)

التحديثات المتعلقة بالاعتمادية

الإصدار 1.2.1

الإصدار 1.2.1

10 آذار (مارس) 2021

تم طرح androidx.activity:activity:1.2.1 وandroidx.activity:activity-ktx:1.2.1. يحتوي الإصدار 1.2.1 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • يعرض تطبيق "RequestMultiplePermissions" الآن نتائج لجميع الأذونات المطلوبة بدلاً من عرض الأذونات التي لم يتم منحها في السابق فقط. (I50bc3، b/180884668)
  • يضمن ActivityResultRegistry الآن أن طلبات launch() قيد التقدم ستعرض نتائجها حتى إذا unregister()، ثم register() مرة أخرى باستخدام المفتاح نفسه. (I9ef34، b/181267562)

الإصدار 1.2.0

الإصدار 1.2.0

10 شباط (فبراير) 2021

تم طرح androidx.activity:activity:1.2.0 وandroidx.activity:activity-ktx:1.2.0. يحتوي الإصدار 1.2.0 على عمليات الالتزام هذه.

التغييرات الرئيسية منذ الإصدار 1.1.0

  • واجهات برمجة التطبيقات لنتائج الأنشطة: توفّر "ComponentActivity" الآن ActivityResultRegistry التي تتيح لك التعامل مع مسارات startActivityForResult()+onActivityResult() بالإضافة إلى requestPermissions()+onRequestPermissionsResult() بدون إلغاء الطرق في "النشاط" أو "الأجزاء"، ما يعزّز أمان النوع من خلال ActivityResultContract، كما يوفّر عناصر الجذب لاختبار هذه المسارات. يمكنك الاطّلاع على النسخة المعدّلة الحصول على نتيجة من نشاط.
  • ContextAware: تنفِّذ ComponentActivity الآن ContextAware، ما يسمح لك بإضافة مثيل OnContextAvailableListener واحد أو أكثر ستتلقّى معاودة اتصال قبل القاعدة Activity.onCreate().

    • تتيح لك إضافة Kotlin المعلّقة withContextAvailable() تشغيل حظر غير معلّق عندما يصبح السياق متاحًا ويتم عرض نتيجة.
    • يستخدم FragmentActivity واجهة برمجة التطبيقات هذه في Fragment 1.3.0 لاستعادة حالة FragmentManager. أي أدوات استماع تمت إضافتها إلى الفئات الفرعية من FragmentActivity سيتم تشغيلها بعد ذلك المستمع.
    • يتم استخدام واجهة برمجة التطبيقات هذه من قِبل "AppCompatActivity" في الإصدار AppCompat 1.3.0-alpha02 أو الإصدارات الأحدث. أي أدوات استماع تمت إضافتها إلى الفئات الفرعية من AppCompatActivity سيتم تشغيلها بعد ذلك المستمع.
  • دعم ViewTree: يتوافق "ComponentActivity" الآن مع واجهات برمجة التطبيقات ViewTreeLifecycleOwner.get(View) وViewTreeViewModelStoreOwner.get(View) وViewTreeSavedStateRegistryOwner التي تمت إضافتها في رحلة المستخدِم 2.3.0 وSavedState 1.1.0، ما يؤدي إلى عرض "النشاط" على النحو التالي: LifecycleOwner وViewModelStoreOwner وSavedStateRegistryOwner لأي ملف شخصي تتم إضافته مباشرةً إلى ComponentActivity.

  • reportFullyDrawn(): الإجراء Activity الذي تم تنفيذه reportFullyDrawn() في الإصدار ComponentActivity للعمل على جميع مستويات واجهة برمجة التطبيقات، ما يؤدي إلى إصلاح عطل في واجهة برمجة التطبيقات 19 وإضافة تتبُّع لهذه الطريقة لجميع مستويات واجهة برمجة التطبيقات

الإصدار 1.2.0-rc01

16 كانون الأول (ديسمبر) 2020

تم طرح androidx.activity:activity:1.2.0-rc01 وandroidx.activity:activity-ktx:1.2.0-rc01. يحتوي الإصدار 1.2.0-rc01 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • تستعيد ActivityResultRegistry دائمًا الحالة الدقيقة التي تم حفظها. (Idd56b)
  • إضافة تتبُّع إلى ComponentActivity.reportFullyDrawn (Ic7632)

مساهمة خارجية

  • يؤدي ComponentActivity الآن إلى إلغاء reportFullyDrawn()، ما يسمح بطلبها على جميع مستويات واجهة برمجة التطبيقات وإصلاح عطل عند استدعاء هذه الطريقة بدون إذن النظام المناسب على أجهزة واجهة برمجة التطبيقات 19. شكرًا سيمون شيلر. (b/163239764، #103)

الإصدار 1.2.0-beta02

2 كانون الأول (ديسمبر) 2020

تم طرح androidx.activity:activity:1.2.0-beta02 وandroidx.activity:activity-ktx:1.2.0-beta02. يحتوي الإصدار 1.2.0-beta02 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • تم إصلاح مشكلة عدم انتظار واجهة برمجة التطبيقات Activity Result API إلى أن تصبح مراحل النشاط STARTED قبل تقديم النتائج عند التسجيل باستخدام Lifecycle. (I109ea)

مساهمة خارجية

  • تم تعديل مستندات "launch()" للإشارة صراحةً إلى إمكانية طرح ActivityNotFoundException. شكرًا مايكل زيلينسكي! (aosp/1493580)

الإصدار 1.2.0-beta01

1 تشرين الأول (أكتوبر) 2020

تم طرح androidx.activity:activity:1.2.0-beta01 وandroidx.activity:activity-ktx:1.2.0-beta01. يحتوي الإصدار 1.2.0-beta01 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • يُنشئ ActivityResultRegistry الآن أعدادًا صحيحة بشكل عشوائي إلى أن يعثر على عدد صحيح غير مخصّص لاستخدامه كرمز طلب register()، ما يمنع الزيادة المحتملة في العدد الصحيح الناتج عن زيادة رموز الطلب. (b/168779518)

  • تتم إزالة Lifecycle مراقبًا بشكلٍ صحيح عند الاتصال بـ unregister() على ActivityResultLauncher. (b/165608393)

تغييرات السلوك

  • يطرح ActivityResultRegistry الآن IllegalStateException عند محاولة الاتصال بـ register() مع LifecycleOwner الذي سبق له وصول Lifecycle إلى STARTED. (b/165435866)

تم تعديل المستندات

  • تتضمّن مستندات "ContextAware" روابط إلى LifecycleOwner لتمييز عمليات استدعاء Lifecycle باعتبارها المكان المناسب لأحداث الإنشاء والتدمير. (aosp/1414152)

الإصدار 1.2.0-alpha08

19 آب (أغسطس) 2020

تم طرح androidx.activity:activity:1.2.0-alpha08 وandroidx.activity:activity-ktx:1.2.0-alpha08. يحتوي الإصدار 1.2.0-alpha08 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تنفِّذ ComponentActivity الآن ContextAware، ما يسمح لك بإضافة مثيل OnContextAvailableListener واحد أو أكثر ستتلقّى معاودة الاتصال قبل القاعدة Activity.onCreate(). (b/161390636)
    • تتيح لك إضافة Kotlin المعلّقة withContextAvailable() تشغيل حظر غير معلّق عندما يصبح السياق متاحًا ويتم عرض نتيجة. (I8290c)
    • تستخدم واجهة برمجة التطبيقات هذه واجهة برمجة التطبيقات FragmentActivity في القسم 1.3.0-alpha08 لاستعادة حالة FragmentManager. أي أدوات استماع تمت إضافتها إلى الفئات الفرعية من FragmentActivity سيتم تشغيلها بعد ذلك المستمع. (I513da)
    • يتم استخدام واجهة برمجة التطبيقات هذه من قِبل "AppCompatActivity" في AppCompat 1.3.0-alpha02. أي أدوات استماع تمت إضافتها إلى الفئات الفرعية من AppCompatActivity سيتم تشغيلها بعد ذلك المستمع. (I513da)

إصلاح الأخطاء

  • تم إصلاح مشكلة في فحص أداة Lint ActivityResultFragmentVersionDetector تسبَّبت في تعطُّله عند استخدام Lint 27.1.0 أو إصدار أحدث. (b/162155191)

الإصدار 1.2.0-alpha07

22 تموز (يوليو) 2020

تم طرح androidx.activity:activity:1.2.0-alpha07 وandroidx.activity:activity-ktx:1.2.0-alpha07. يحتوي الإصدار 1.2.0-alpha07 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تمت إضافة فحص جديد من أداة Lint في نظام التشغيل InvalidFragmentVersionForActivityResult للتحقُّق من استخدامك لأداة Fragment 1.3.0-alpha07 عند استخدام Activity Result API، لتجنُّب حدوث أعطال في وقت التشغيل بسبب مشاكل "رمز طلب غير صالح" وطلبات الحصول على أذونات غير مُفعّلة بسبب استخدام إصدارات قديمة من "الأجزاء". (b/152554847)

مساهمة خارجية

  • تم إصلاح ArrayIndexOutOfBoundsException عند تحليل نتائج عقد نتائج النشاط على RequestPermission. (I8f9e3، وb/161057605)

الإصدار 1.2.0-alpha06

10 حزيران (يونيو) 2020

تم طرح androidx.activity:activity:1.2.0-alpha06 وandroidx.activity:activity-ktx:1.2.0-alpha06. يحتوي الإصدار 1.2.0-alpha06 على هذه عمليات التنفيذ.

الميزات الجديدة

  • يمكنك الآن حذف فئة ActivityResult في لغة Kotlin للوصول مباشرةً إلى requestCode وintent. (b/157212935)
  • يتيح لك ActivityResultLauncher الآن الحصول على ActivityResultContract الذي تم استخدامه لتسجيل مشغّل التطبيقات. (b/156875743)

التغييرات في واجهة برمجة التطبيقات

  • تغيير قد يؤدي إلى عطل: تمت إعادة تسمية طريقة invoke() في ActivityResultRegistry إلى onLaunch(). (b/157496491)
  • يعرض عقد OpenMultipleDocuments الآن قائمة فارغة بدلاً من null إلى معاودة الاتصال المسجَّلة في حال عدم عرض أي نتيجة. (b/157348014)

الإصدار 1.2.0-alpha05

20 أيار (مايو) 2020

تم طرح androidx.activity:activity:1.2.0-alpha05 وandroidx.activity:activity-ktx:1.2.0-alpha05. يحتوي الإصدار 1.2.0-alpha05 على هذه عمليات التنفيذ.

الميزات الجديدة

التغييرات في واجهة برمجة التطبيقات

  • يعرض عقد TakePicture الآن الرمز boolean الذي يشير إلى النجاح بدلاً من الصورة المصغّرة Bitmap لأنّه نادرًا ما كانت هذه العلامة متاحة في تطبيقات الكاميرا عند كتابة الصورة في Uri المقدَّم. (b/154302879)
  • تمت إزالة إضافات invoke() على ActivityResultLauncher لصالح استخدام launch() صراحةً للإشارة بشكل أفضل إلى أن هذه عمليات غير متزامنة. تمت إضافة إضافات لغة Kotlin الخاصة بـ launch إلى حزمة androidx.activity.result لكل من ActivityResultLauncher<Void> وActivityResultLauncher<Unit>، ما أدى إلى إزالة الحاجة إلى التمرير في null أو Unit على التوالي، ما يعكس هذا السلوك من الإضافات invoke() السابقة. (aosp/1304674، aosp/1304675)
  • تم دمج طريقة IntentSenderRequest.Builder لكل من setFlagsMask() وsetFlagsValues() في طريقة setFlags() واحدة. (aosp/1302111)

إصلاح الأخطاء

  • عند تسجيل ActivityResultCallback مع LifecycleOwner، يجب حلّ مشكلة تشغيل معاودة الاتصال قبل وصول الحالة إلى STARTED. (aosp/1309744)

تغييرات السلوك

  • تُنشئ ActivityResultRegistry الآن رموز طلب بدءًا من 0xFFFF بدلاً من 0، ما يمنع التداخل عند استخدام startActivityForResult() أو requestPermissions() في أي نشاط. (aosp/1302324)

الإصدار 1.2.0-alpha04

29 نيسان (أبريل) 2020

تم طرح androidx.activity:activity:1.2.0-alpha04 وandroidx.activity:activity-ktx:1.2.0-alpha04. يحتوي الإصدار 1.2.0-alpha04 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تمت إضافة عقد يمكنه استدعاء startIntentSenderForResult إلى واجهات برمجة تطبيقات ActivityResult. (b/153007517)

التغييرات في واجهة برمجة التطبيقات

  • تمت إعادة تسمية طريقة prepareCall() إلى registerForActivityResult()، في كل من ComponentActivity هنا وفي الجزء 1.3.0-alpha04. (aosp/1278717)
  • تمت إعادة تسمية العقود GetContents وOpenDocuments وRequestPermissions إلى GetMultipleContents وOpenMultipleDocuments وRequestMultiplePermissions على التوالي. (aosp/1280161)
  • تنفِّذ ComponentActivity الآن واجهة ActivityResultRegisteryOwner. (aosp/1290888)
  • - تم إيقاف واجهتَي برمجة التطبيقات startActivityForResult()/onActivityResult() وonRequestPermissionsResult() على "ComponentActivity" نهائيًا. يُرجى استخدام واجهات برمجة تطبيقات نتائج الأنشطة. (b/154751887)

إصلاح الأخطاء

  • عند استخدام عقدَي GetMultipleContents وOpenMultipleDocuments واختيار عنصر واحد، يتم الآن إرجاعه بشكل صحيح إلى معاودة الاتصال. (b/152941153)

الإصدار 1.2.0-alpha03

1 نيسان (أبريل) 2020

تم طرح androidx.activity:activity:1.2.0-alpha03 وandroidx.activity:activity-ktx:1.2.0-alpha03. يحتوي الإصدار 1.2.0-alpha03 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تمت إضافة العقود TakeVideo وPickContact وGetContent وGetContents وOpenDocument وOpenDocuments وOpenDocumentTree وCreateDocument إلى مجموعة العقود المنشأة مسبقًا من ActivityResultContracts. (aosp/1262482 وaosp/1266916 وaosp/1268960)
  • تتيح واجهات برمجة تطبيقات نتائج الأنشطة الآن بدء نشاط للنتيجة باستخدام علامة ActivityOptionsCompat اختيارية. (b/151860054)

التغييرات في واجهة برمجة التطبيقات

  • يأخذ عقد TakePicture الآن إدخال Uri للمكان الذي يجب تخزين الصورة فيه. تمت إعادة تسمية العقد السابق الذي لا يتطلّب أي إدخال إلى TakePicturePreview. (aosp/1262482)
  • تمت إعادة تسمية طريقة registerActivityResultCallback() على ActivityResultRegistry إلى register(). (aosp/1267621)
  • تمت إعادة تسمية الطريقة dispose() على ActivityResultLauncher إلى unregister() وإزالة unregisterResultCallback() في ActivityResultRegistry. (aosp/1267621)
  • تستخدم طريقة createIntent() لـ ActivityResultContact الآن السمة Context بالإضافة إلى الإدخال لإتاحة إنشاء أهداف صريحة. (aosp/1238800)
  • يمكن لـ ActivityResultContract الآن إلغاء getSynchronousResult() لعرض نتيجة بدون طلب startActivityForResult. ويُستخدَم ذلك في العقدَين RequestPermission وRequestPermissions لعرض الحالة "تمّ منح الإذن" بشكل صحيح إذا سبق أن تم منح الأذونات المطلوبة. (b/151110799)
  • تمت إزالة عقد Dial الذي كان متاحًا في السابق لأنّ Intent لا تريد استخدامه مع startActivityForResult(). (aosp/1266916)
  • أصبحت العديد من واجهات برمجة تطبيقات نتائج الأنشطة التي لم يكن من المفترض تمديدها الآن هي final. يشمل ذلك getActivityResultRegistry() وطرق prepareCall() وجميع طرق ActivityResultRegistry باستثناء invoke() وعدد من العقود التلقائية التي لا تتيح استخدام العناصر الإضافية الاختيارية. (b/152439361)

إصلاح الأخطاء

  • تم إصلاح NullPointerException في ActivityResultRegistry عند محاولة تسليم نتائج إلى معاودة الاتصال لم تتم إعادة تسجيلها بعد بعد تغيير الإعدادات، ويحتفظ ActivityResultRegistry الآن بهذه النتائج المعلّقة ويعرضها عند إعادة تسجيل معاودة الاتصال. (b/152137004)

الإصدار 1.2.0-alpha02

18 آذار (مارس) 2020

تم طرح androidx.activity:activity:1.2.0-alpha02 وandroidx.activity:activity-ktx:1.2.0-alpha02. يحتوي الإصدار 1.2.0-alpha02 على عمليات التنفيذ هذه.

الميزات الجديدة

  • ActivityResultRegistry: يوفّر "ComponentActivity" الآن ActivityResultRegistry الذي يتيح لك معالجة مسارات startActivityForResult()+onActivityResult() بالإضافة إلى requestPermissions()+onRequestPermissionsResult() بدون إلغاء الطرق في "النشاط" أو "الأجزاء"، ويعزّز أمان الكتابة من خلال ActivityResultContract، كما يوفّر عناصر الجذب لاختبار هذه المسارات. يمكنك الاطّلاع على النسخة المعدّلة الحصول على نتيجة من نشاط. (b/125158199)

الإصدار 1.2.0-alpha01

4 آذار (مارس) 2020

تم طرح androidx.activity:activity:1.2.0-alpha01 وandroidx.activity:activity-ktx:1.2.0-alpha01. يحتوي الإصدار 1.2.0-alpha01 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تمت إضافة معلومات عن واجهة برمجة التطبيقات "ViewTreeLifecycleOwner.get(View)" المُضافة في دورة الحياة 2.3.0-alpha01، ما يؤدي إلى عرض "النشاط" على أنّه LifecycleOwner لأي ملف شخصي تتم إضافته مباشرةً إلى "النشاط". (aosp/1182955)

إصلاح الأخطاء

  • تم إصلاح التراجع الذي تم تقديمه في النشاط "1.1.0" عند تشغيل التطبيق على إصدارات قديمة من النظام الأساسي، حيث يتسبب onBackPressed() في حدوث IllegalStateException بسبب خطأ في android.app.FragmentManager. (b/146290338)

الإصدار 1.1.0

الإصدار 1.1.0

22 كانون الثاني (يناير) 2020

تم طرح androidx.activity:activity:1.1.0. يحتوي الإصدار 1.1.0 على عمليات التنفيذ هذه.

تغييرات مهمة منذ الإصدار 1.0.0

  • دمج Lifecycle ViewModel SaveState: SavedStateViewModelFactory هو الآن المصنع التلقائي المستخدَم عند استخدام by viewModels() أو الدالة الإنشائية ViewModelProvider أو ViewModelProviders.of() مع ComponentActivity أو فئاتها الفرعية.

الإصدار 1.1.0-rc03

4 كانون الأول (ديسمبر) 2019

تم طرح androidx.activity:activity:1.1.0-rc03 وandroidx.activity:activity-ktx:1.1.0-rc03. يحتوي الإصدار 1.1.0-rc03 على هذه عمليات التنفيذ.

التغييرات في التبعية

  • يعتمد النشاط الآن على "رحلة المستخدِم" 2.2.0-rc03 و"حفظ النموذج على مراحل النشاط" "1.0.0-rc03".

الإصدار 1.1.0-rc02

7 تشرين الثاني (نوفمبر) 2019

تم طرح androidx.activity:activity:1.1.0-rc02 وandroidx.activity:activity-ktx:1.1.0-rc02. يحتوي الإصدار 1.1.0-rc02 على عمليات التنفيذ هذه.

التغييرات في التبعية

  • يعتمد النشاط الآن على دورة الحياة 2.2.0-rc02.

الإصدار 1.1.0-rc01

23 تشرين الأول (أكتوبر) 2019

تم إصدار androidx.activity:activity:1.1.0-rc01 وandroidx.activity:activity-ktx:1.1.0-rc01 بدون أي تغييرات من 1.1.0-beta01. يحتوي الإصدار 1.1.0-rc01 على عمليات الالتزام هذه.

الإصدار 1.1.0-beta01

9 تشرين الأول (أكتوبر) 2019

تم طرح androidx.activity:activity:1.1.0-beta01 وandroidx.activity:activity-ktx:1.1.0-beta01. يحتوي الإصدار 1.1.0-beta01 على عمليات التنفيذ هذه.

التغييرات في التبعية

  • يعتمد النشاط الآن على الإصدار SaveState 1.0.0 الثابت.

الإصدار 1.1.0-alpha03

5 أيلول (سبتمبر) 2019

تم طرح androidx.activity:activity:1.1.0-alpha03 وandroidx.activity:activity-ktx:1.1.0-alpha03. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

الميزات الجديدة

  • يعتمد النشاط الآن على الإصدار 1.1.0 الثابت من Core.

إصلاح الأخطاء

الإصدار 1.1.0-alpha02

7 آب (أغسطس) 2019

تم طرح androidx.activity:activity:1.1.0-alpha02 وandroidx.activity:activity-ktx:1.1.0-alpha02. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

الميزات الجديدة

  • SavedStateViewModelFactory هو الآن المصنع التلقائي المستخدم عند استخدام by viewModels()، أو طريقة إنشاء ViewModelProvider، أو ViewModelProviders.of() مع ComponentActivity (b/135716331).

الإصدار 1.1.0-alpha01

2 تموز (يوليو) 2019

تم طرح androidx.activity:activity:1.1.0-alpha01 وandroidx.activity:activity-ktx:1.1.0-alpha01. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

الميزات الجديدة

  • تعتمد ميزة "activity" الآن على "دورة الحياة" 2.2.0-alpha02. (aosp/1007817)
  • أضاف activity-ktx تبعية إلى lifecycle-runtime-ktx، ولم تعُد بحاجة إلى إضافتها بشكل صريح إلى العناصر التابعة عند استخدام activity-ktx أو المكتبات التي تعتمد على activity-ktx (مثل fragment-ktx). (aosp/987162)

الإصدار 1.0.0

الإصدار 1.0.0

5 أيلول (سبتمبر) 2019

تم طرح androidx.activity:activity:1.0.0 وandroidx.activity:activity-ktx:1.0.0. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

الميزات الرئيسية للإصدار 1.0.0

  • ComponentActivity: تعمل "ComponentActivity" على أنّها الفئة الأساسية الجديدة لـ "FragmentActivity" في القسم 1.1.0، وبالتالي AppCompatActivity في AppCompat 1.1.0.
  • activity-ktx: تتضمّن وحدة activity-ktx إضافة الموقع الإلكتروني بلغة by viewModels Kotlin للوصول إلى ViewModels. يتم تضمين هذه الوحدة تلقائيًا عند تضمين fragment-ktx من القسم 1.1.0.
  • OnBackPressedDispatcher: كبديل قابل للإنشاء لإلغاء onBackPressed()، يمكنك الآن تسجيل OnBackPressedCallback من أي LifecycleOwner (مثل جزء) لاعتراض أحداث زر الرجوع في النظام. تمت إضافة دالة lambda مع إصدار المستلِم (addCallback) إلى activity-ktx. راجِع تقديم مستندات مخصّصة للتنقّل للخلف للحصول على مزيد من التفاصيل.
  • إيقاف onRetainCustomNonConfigurationInstance نهائيًا: تم إيقاف واجهات برمجة التطبيقات onRetainCustomNonConfigurationInstance() وgetLastCustomNonConfigurationInstance() ذات الصلة نهائيًا. ننصح بشدة باستخدام ViewModels لتخزين حالة عدم الضبط، وذلك لأنّها توفّر حلاً قابلاً للإنشاء ومناسب لأي ViewModelStoreOwner يجعل ملكية العناصر التي تم الاحتفاظ بها واضحة ويوفّر طلب استدعاء onCleared() لإزالة الموارد عندما يتم إتلاف النشاط في النهاية.

الإصدار 1.0.0-rc01

2 تموز (يوليو) 2019

تم إصدار androidx.activity:activity:1.0.0-rc01 وandroidx.activity:activity-ktx:1.0.0-rc01 بدون أي تغييرات من 1.0.0-beta01. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

الإصدار 1.0.0-beta01

5 حزيران (يونيو) 2019

تم إصدار androidx.activity::activity:1.0.0-beta01 وandroidx.activity:activity-ktx:1.0.0-beta01 بدون أي تغييرات من 1.0.0-alpha08. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

الإصدار 1.0.0-alpha08

7 أيار (مايو) 2019

تم طرح androidx.activity:activity:1.0.0-alpha08 وandroidx.activity:activity-ktx:1.0.0-alpha08. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

التغييرات في واجهة برمجة التطبيقات

  • تغيير قد عطل: تمت إزالة الطريقتين addOnBackPressedCallback وremoveOnBackPressedCallback المتوقفتين سابقًا في ComponentActivity. aosp/953857
  • أصبحت الطريقتان setEnabled() وisEnabled() للدالة OnBackPressedCallback نهائية. b/131416833
  • أصبحت طريقة remove() لحساب OnBackPressedCallback نهائية. aosp/952720
  • يتوفّر في OnBackPressedDispatcher الآن منصات إنشاء عامة، ما يسمح لك بإنشاء مثيلات خاصة بك للاختبار، وما إلى ذلك. aosp/953431
  • تم الآن وضع علامة @MainThread aosp/952721 بشكل واضح على onBackPressed() للنطاق ComponentActivity.

إصلاح الأخطاء

  • تم إصلاح ConcurrentModificationException عند استدعاء remove() من داخل طريقة handleOnBackPressed() من OnBackPressedCalback تمت إضافتها باستخدام LifecycleOwner. b/131765095

الإصدار 1.0.0-alpha07

25 نيسان (أبريل) 2019

تم طرح androidx.activity:activity:1.0.0-alpha07 وandroidx.activity:activity-ktx:1.0.0-alpha07. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

التغييرات في واجهة برمجة التطبيقات

يُجري هذا الإصدار تغييرات كبيرة على طريقة معالجة onBackPressed(). لمعرفة مزيد من التفاصيل، يمكنك الاطّلاع على المستندات المعدَّلة الخاصة بخلفية مخصّصة.

  • تم وضع علامة @MainThread على الطريقتَين OnBackPressedCallback وOnBackPressedDispatcher. (aosp/943813)
  • لم تعد الطريقة handleOnBackPressed() تعرض boolean. بدلاً من ذلك، أصبحت OnBackPressedCallback فئة مجردة يمكن تفعيلها أو إيقافها، وفقط عندما تعرض طريقة isEnabled() الجديدة القيمة "صحيح"، سيتم استدعاء handleOnBackPressed()، حيث يجب التعامل مع زر الرجوع. (aosp/944518)
  • لم تعُد الطرق addCallback للدالة OnBackPressedDispatcher تعرض مثيل Cancellable. يحتوي OnBackPressedCallback الآن على طريقة remove() التي تفي بهذه الوظيفة، ما يسمح لك بطلب remove() خلال handleOnBackPressed(). (aosp/944519) (aosp/946316)
  • يحتوي activity-ktx الآن على استدعاء على نطاق مُستلِم لـ addCallback يقبل دالة lamdba التي تنفِّذ handleOnBackPressed() وتتمتع بإمكانية الوصول إلى isEnabled وremove() (aosp/944520).

الإصدار 1.0.0-alpha06

3 نيسان (أبريل) 2019

تم طرح androidx.activity:activity:1.0.0-alpha06 وandroidx.activity:activity-ktx:1.0.0-alpha06. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.

التغييرات في واجهة برمجة التطبيقات

  • يحتوي ComponentActivity الآن على دالة إنشاء ثانية تستبدل @LayoutRes int بالسلوك السابق لإضافة تعليقات توضيحية إلى فئة AppCompatActivity بـ "@ContentView". تعمل هذه الطريقة في وحدات المكتبة والتطبيقات. (b/128352521)
  • تم إيقاف واجهات برمجة التطبيقات ذات الصلة "OnBackPressedCallback" في ComponentActivity نهائيًا لصالح "OnBackPressedDispatcher" الجديد، ويمكن استرداده من خلال "getOnBackPressedDispatcher()". (aosp/922523)
  • تؤدي الآن طرق إضافة OnBackPressedCallback جديدة إلى OnBackPressedDispatcher إلى عرض كائن Cancellable، ما يسمح بإزالة الاستدعاء بدون الحاجة إلى إشارة صريحة إلى OnBackPressedDispatcher. (aosp/922523)
  • تؤدي إضافة OnBackPressedCallback مع LifecycleOwner مرتبط الآن إلى إضافة OnBackPressedCallback وإزالتها عند بدء دورة الحياة وإيقافها، على التوالي. (aosp/922523)

الإصدار 1.0.0-alpha05

13 آذار (مارس) 2019

تم إلغاء androidx.activity:activity:1.0.0-alpha05 وandroidx.activity:activity-ktx:1.0.0-alpha05. يمكن العثور على القائمة الكاملة لخطط الضمان المضمّنة في هذا الإصدار هنا.

الميزات الجديدة

  • تم تخزين عمليات البحث عن تعليقات توضيحية في @ContentView مؤقتًا (b/123709449).

الإصدار 1.0.0-alpha04

30 كانون الثاني (يناير) 2019

تم طرح ميزات androidx.activity:activity 1.0.0-alpha04 وandroidx.activity:activity-ktx 1.0.0-alpha04.

الميزات الجديدة

  • تمت إضافة إمكانية استخدام التعليق التوضيحي من فئة @ContentView للإشارة إلى التنسيق الذي يجب تضخيمه بتنسيق XML كبديل لاستخدام setContentView(). (aosp/837619)

التغييرات في واجهة برمجة التطبيقات

  • تمت إضافة ملاحظة بأنّه يجب عدم إلغاء getViewModelStore() وسيتم إدراجه بشكل نهائي في إصدار مستقبلي. يُرجى تقديم طلب ميزة إذا كنت تتجاوز هذه الطريقة في الوقت الحالي. (aosp/837619)

إصلاح الأخطاء

  • تعتمد وحدة activity الآن على الإصدار 2.1.0-alpha02 من ViewModel لتتطابق مع اعتماد الوحدة النمطية activity-ktx.

الإصدار 1.0.0-alpha03

17 كانون الأول (ديسمبر) 2018

تم طرح androidx.activity 1.0.0-alpha03.

الميزات الجديدة

  • ينفذ ComponentActivity الآن BundleSavedStateRegistryOwner ويعتمد على مكتبة SaveState التي تم إصدارها حديثًا [aosp/815133]
  • يعمل ComponentActivity الآن على حل خطأ في إطار عمل Android قد يتسبب في تسريب طريقة العرض الأخيرة التي تم التركيز عليها، [b/37122102].

الإصدار 1.0.0-alpha02

3 كانون الأول (ديسمبر) 2018

التغييرات في واجهة برمجة التطبيقات

  • تمت إضافة ملاحظة تفيد بأنّه يجب عدم إلغاء السمة getLifecycle() وسيتم إجراؤها final في إصدار مستقبلي. يُرجى تقديم طلب ميزة إذا كنت تتجاوز هذه الطريقة في الوقت الحالي. (aosp/815834)

الإصدار 1.0.0-alpha01

5 تشرين الثاني (نوفمبر) 2018

نقدّم في androidx.activity 1.0.0-alpha01 ComponentActivity، وهي فئة أساسية جديدة من FragmentActivity وAppCompatActivity الحاليتَين.

الميزات الجديدة

  • يمكنك الآن تسجيل OnBackPressedCallback من خلال addOnBackPressedCallback لتلقّي عمليات معاودة الاتصال بـ onBackPressed() بدون الحاجة إلى إلغاء الطريقة في نشاطك.
  • تمت إضافة تفويض جديد لخاصية by viewModels() Kotlin لاسترداد ViewModel من ComponentActivity.
  • يتم الآن إلغاء أحداث الإدخال المعلَّقة (مثل النقرات) في onStop().

التغييرات في واجهة برمجة التطبيقات

  • تم نقل تنفيذ الترميزَين LifecycleOwner وViewModelStoreOwner من FragmentActivity إلى ComponentActivity.
  • تم إيقاف onRetainCustomNonConfigurationInstance نهائيًا. ويمكنك استخدام ViewModel لتخزين العناصر التي تحتاج إلى مواجهة تغييرات الضبط.