النشاط

الوصول إلى واجهات برمجة التطبيقات القابلة للإنشاء والمستندة إلى Activity
آخر الأخبار الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار الأوّلي
‫2 يوليو 2025 1.10.1 1.11.0-rc01 - 1.12.0-alpha04

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

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

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

Groovy

dependencies {
    def activity_version = "1.10.1"

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

Kotlin

dependencies {
    val activity_version = "1.10.1"

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

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

الملاحظات

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

إنشاء مشكلة جديدة

يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.

الإصدار 1.12

الإصدار 1.12.0-alpha04

‫2 يوليو 2025

تم إصدار androidx.activity:activity:1.12.0-alpha04 وandroidx.activity:activity-compose:1.12.0-alpha04 وandroidx.activity:activity-ktx:1.12.0-alpha04. يحتوي الإصدار 1.12.0-alpha04 على عمليات الدمج هذه.

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

الإصدار 1.12.0-alpha03

‫18 يونيو 2025

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

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

  • يتم الآن تهيئة كل من OnBackPressedDispatcher وNavigationEventDispatcher بشكل غير مباشر في ComponentActivity. (I710e6)

  • تم إصلاح المشاكل في OnBackPressedDistpatcher التي كانت تؤدي إلى ما يلي:

    • سيتم إعلام أحدث أداة إرسال تمّت إضافتها إلى OnBackPressedCallback بحالة التفعيل (b/418715930)
    • تزيل OnBackPressedDispatcher دالة رد الاتصال غير الصحيحة عند استخدام الدالة addCallback التي تتضمّن دورة حياة. (b/422714753)
    • لا يؤدي OnBackPressedDispatcher.remove() إلى إزالة جميع مثيلات OnBackPressedCallback مسجَّلة. (b/423024414)

الإصدار 1.12.0-alpha02

‫4 يونيو 2025

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

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

  • من NavigationEvent 1.0.0-alpha02: تم إصلاح ConcurrentModificationException كان من المحتمل أن يحدث عند استدعاء NavigationEventCallback.remove() بسبب تعديل القائمة الداخلية للعناصر القابلة للإغلاق في الوقت نفسه. (I63066)

الإصدار 1.12.0-alpha01

‫20 مايو 2025

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

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

  • تم دمج ComponentActivity وComponentDialog مع NavigationEvent 1.0.0-alpha01 من خلال واجهة برمجة التطبيقات NavigationEventDispatcherOwner. يمكنك الآن استرداد NavigationEventDispatcher من ComponentActivity من خلال الحقل navigationEventDispatcher. بما أنّه تمت إعادة كتابة OnBackPressedDispatcher فوق المكتبة الجديدة، من المفترض أن تستمر جميع الاستخدامات السابقة في العمل بشكل صحيح. يجب استخدام NavigationEventDispatcher وNavigationEventCallback من الآن فصاعدًا. (Ib8eed وI6cc44 وIb7724 وI9a0f7 وb/412597031 وb/415028038 وb/412596729 وb/412597140 وb/412596012)

الإصدار 1.11

الإصدار 1.11.0-rc01

‫23 أبريل 2025

تم إصدار androidx.activity:activity:1.11.0-rc01 وandroidx.activity:activity-compose:1.11.0-rc01 وandroidx.activity:activity-ktx:1.11.0-rc01. يحتوي الإصدار 1.11.0-rc01 على عمليات الدمج هذه.

الإصدار 1.11.0-beta01

‫9 أبريل 2025

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

الإصدار 1.11.0-alpha02

‫26 مارس 2025

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

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

  • تم دمج EDGE_NONE وframeTimeMillis الجديدَين من الإصدار التجريبي 03 من Android 16 في BackEventCompat الذي توفّره وظائف handleOnBackStarted وhandleOnBackProgressed في OnBackPressedCallback.

تحديثات التبعيات

  • يتم الآن تجميع النشاط باستخدام الإصدار 36 من واجهة برمجة التطبيقات. (I510e8، b/301910674)

الإصدار 1.11.0-alpha01

‫12 مارس 2025

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

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

  • تمت إضافة واجهة برمجة التطبيقات MediaCapabilities إلى PickVisualMediaRequest للسماح للتطبيقات بتحديد إمكانات الوسائط، مثل أنواع HDR المتوافقة. (Ic3ee7)

الإصدار 1.10

الإصدار 1.10.1

‫26 فبراير 2025

تم إصدار androidx.activity:activity:1.10.1 وandroidx.activity:activity-compose:1.10.1 وandroidx.activity:activity-ktx:1.10.1. يتضمّن الإصدار 1.10.1 عمليات الدمج هذه.

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

  • يمكن الآن حلّ ViewTree OnBackPressedDispatcherOwners وFullyDrawnReporterOwners من خلال الوالدَين المنفصلَين لعنصر العرض، مثل ViewOverlay. لمزيد من المعلومات عن عناصر العرض المنفصلة الرئيسية، يُرجى الاطّلاع على ملاحظات الإصدار الأساسية أو المستندات في ViewTree.setViewTreeDisjointParent. (Ie7750)

الإصدار 1.10.0

‫15 يناير 2025

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

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

  • يتيح لك PhotoPicker الآن اختيار الصور بالترتيب واختيار علامة التبويب التي يجب أن تكون مرئية في البداية (إما الألبومات أو الصور).
  • لم يعُد عقدَا PickVisualMedia وPickMultipleVisualMedia لنتائج الأنشطة اللذان يؤديان إلى تشغيل "أداة اختيار الصور" يفوّضان المهام مباشرةً إلى "خدمات Google Play" في حال عدم توفّر "أداة اختيار الصور" في النظام، بل يستخدمان الإجراء ACTION_SYSTEM_FALLBACK_PICK_IMAGES العام والإضافات ذات الصلة لتوفير تجربة متسقة في "أداة اختيار الصور" لمصنّعي المعدات الأصلية وتطبيقات النظام كحلّ احتياطي.
  • LocalActivity تركيبة جديدة محلية توفّر Activity للنطاق الحالي، ما يغني المطوّرين عن الحصول على Activity من LocalContext.

الإصدار 1.10.0-rc01

‫11 ديسمبر 2024

تم إصدار androidx.activity:activity:1.10.0-rc01 وandroidx.activity:activity-compose:1.10.0-rc01 وandroidx.activity:activity-ktx:1.10.0-rc01. يحتوي الإصدار 1.10.0-rc01 على عمليات الدمج هذه.

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

  • تم إصلاح مشكلة كانت تؤدي إلى إيقاف معاودة الاتصال على الفور عند تغيير حالة التفعيل أثناء نشاط PredictiveBackHandler. سيكمل الآن عملية رد الاتصال الحالية بغض النظر عن تغييرات الحالة المفعّلة. (Ib8719)

الإصدار 1.10.0-beta01

‫13 نوفمبر 2024

تم إصدار androidx.activity:activity:1.10.0-beta01 وandroidx.activity:activity-compose:1.10.0-beta01 وandroidx.activity:activity-ktx:1.10.0-beta01 بدون أي تغييرات منذ آخر إصدار أولي. يحتوي الإصدار 1.10.0-beta01 على عمليات الإيداع هذه.

الإصدار 1.10.0-alpha03

‫30 أكتوبر 2024

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

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

  • تمت إضافة عنصر LocalActivity جديد خاص بالمكوّن يوفّر Activity للنطاق الحالي، ما يغني المطوّرين عن الحصول على Activity من LocalContext. يتضمّن أيضًا قاعدة تدقيق جديدة تتحقّق من الحالات التي يتم فيها تحويل LocalContext بشكل غير صحيح إلى Activity. (I7746a، b/283009666)

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

  • من النشاط 1.9.3: لن يتم تشغيل PredictiveBackHandler بعد إيقاف المعالج. سيؤدي ذلك إلى حلّ المشكلة التي يتسبّب فيها NavHost من Navigation Compose في عرض IndexOutOfBoundsException. (I3f75e، b/365027664، b/340202286)

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

  • تعتمد Activity Compose الآن على الإصدار 1.7.0 من Compose Runtime (I7746a، b/283009666)

الإصدار 1.10.0-alpha02

‫4 سبتمبر 2024

تم إصدار androidx.activity:activity:1.10.0-alpha02 وandroidx.activity:activity-compose:1.10.0-alpha02 وandroidx.activity:activity-ktx:1.10.0-alpha02. يحتوي الإصدار 1.10.0-alpha02 على عمليات الدمج هذه.

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

  • لم يعُد عقدَا PickVisualMedia وPickMultipleVisualMedia لنتائج الأنشطة اللذان يؤديان إلى تشغيل "أداة اختيار الصور" يفوّضان المهام مباشرةً إلى "خدمات Google Play" في حال عدم توفّر "أداة اختيار الصور" في النظام، بل يستخدمان الإجراء ACTION_SYSTEM_FALLBACK_PICK_IMAGES العام والإضافات ذات الصلة لتوفير تجربة متسقة في "أداة اختيار الصور" لمصنّعي المعدات الأصلية وتطبيقات النظام كحلّ احتياطي. من المفترض ألا يؤثر ذلك في تجربة المستخدم على الأجهزة التي يتوفّر عليها إصدار حديث من "خدمات Google Play". (I3513d)

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

  • تمت إزالة التحديد اليدوي لإمكانية الوصول إلى واجهات برمجة التطبيقات الجديدة للمنصة لأنّ ذلك يحدث تلقائيًا من خلال تصميم واجهة برمجة التطبيقات عند استخدام R8 مع الإصدار 7.3 أو إصدار أحدث من "مكوّن Android الإضافي" (مثل الإصدار 3.3 من R8)، وجميع عمليات الإنشاء عند استخدام الإصدار 8.1 أو إصدار أحدث من "مكوّن Android الإضافي" (مثل الإصدار 8.1 من D8). ننصح العملاء الذين لا يستخدمون AGP بالترقية إلى الإصدار 8.1 أو إصدار أحدث من D8. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (I9496c، b/345472586)
  • من النشاط 1.9.2: تم إصلاح مشكلة كانت تتسبّب في استمرار واجهة برمجة التطبيقات Activity Compose PredictiveBackHandler في التعامل مع إيماءة الرجوع في النظام على الإطار الذي تم إيقافه، ما قد يؤدي إلى تعامل مكتبات مثل Navigation Compose مع الرجوع حتى مع سجلّ رجوع فارغ، ما يؤدي إلى عرض IndexOutOfBoundsException. (Ie3301، b/340202286)
  • من النشاط 1.9.1: تم إصلاح مشكلة في PredictiveBackHandler حيث كان يتعذّر تنفيذ onBackPressed من OnBackPressedDispatcher بعد الرجوع إلى الخلف في النظام. (I5f1f8)

الإصدار 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.3

‫16 أكتوبر 2024

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

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

  • لن يتم تشغيل PredictiveBackHandler بعد إيقاف المعالج. سيؤدي ذلك إلى حلّ المشكلة التي يتسبّب فيها NavHost من Navigation Compose في عرض IndexOutOfBoundsException. (I3f75e، b/340202286)

الإصدار 1.9.2

‫4 سبتمبر 2024

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

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

  • تم إصلاح مشكلة كانت تتسبب في استمرار واجهة برمجة التطبيقات Activity Compose PredictiveBackHandler في التعامل مع إيماءة الرجوع في النظام على الإطار الذي تم إيقافها فيه، ما قد يؤدي إلى تعامل المكتبات، مثل Navigation Compose، مع الرجوع حتى مع عدم توفّر سجلّ رجوع، ما يؤدي إلى عرض الخطأ IndexOutOfBoundsException. (Ie3301، b/340202286)

الإصدار 1.9.1

‫24 يوليو 2024

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

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

  • تم إصلاح مشكلة في PredictiveBackHandler، حيث إنّه بعد الرجوع إلى الخلف في النظام، ستتعذّر محاولة تنفيذ onBackPressed من OnBackPressedDispatcher. (I5f1f8)

الإصدار 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 على عمليات الإيداع هذه.

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

  • تم إصلاح مشكلة انخفاض أداء بدء تشغيل النشاط التي تم تقديمها في Activity 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 على عمليات الإيداع هذه.

تحذير Lint

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

  • إذا تم إرسال حدث رجوع من النظام بدأ أثناء تنفيذ إيماءة الرجوع التوقّعية، سيتم إلغاء إيماءة الرجوع التوقّعية الجارية حاليًا وسيتولّى حدث الرجوع الجديد بدء إيماءة رجوع توقّعية جديدة. (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 Conversions

  • تمت إعادة كتابة ActivityResultRegistry بلغة Kotlin. يضمن ذلك أنّه سيتم تمرير إمكانية القيم الخالية للأنواع العامة في العقد الذي تم تمريره إلى register بشكل صحيح إلى ActivityResultLauncher التي تم إرجاعها إليك. (I121f0)
  • تمت إعادة كتابة ActivityResult بلغة Kotlin. تم نقل إضافات Kotlin ActivityResult التي تتيح تقسيم البيانات إلى الحقلَين 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. (Id4615)
  • يستهدف الإصدار PickVisualMediaRequest الآن المستوى 19 من واجهة برمجة التطبيقات كحدّ أدنى، وهو المستوى نفسه الذي يستهدفه عقد PickVisualMedia Activity Result. (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 Composable للتعامل مع أحداث إيماءة الرجوع التوقّعية في Activity Compose. يوفّر هذا الإجراء تدفقًا لعناصر BackEventCompat التي يجب جمعها في دالة lambda المعلقة التي تقدّمها:
  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 على عمليات الإيداع هذه.

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

  • أضافت Activity Compose PredictiveBackHandler قابلاً للإنشاء جديدًا للتعامل مع أحداث إيماءة الرجوع التوقّعية. يوفّر هذا النوع Flow من عناصر BackEventCompat التي يجب جمعها في دالة lambda المعلقة التي تقدّمها:

    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. تم تطوير هذا الإصدار في فرع داخلي.

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

  • توفّر Activity الآن الفئة 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)

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

  • تم إصلاح مشكلة كانت تؤدي إلى إبطال صحة MenuHost بشكل غير صحيح وتتسبب في سلوك غير متوقّع للقوائم الأخرى في النشاط. (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 onBackPressedDispatcher = onBackPressedDispatcher

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

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

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

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

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

تمت إضافة ثلاث واجهات برمجة تطبيقات 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 Conversions

  • تمت إعادة كتابة 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 لـ ViewTree. يمكن الآن استخدام Jetpack Compose داخل ComponentDialog لأنّه يستوفي متطلبات LifecycleOwner وSavedStateRegistryOwner المرتبطة بالنافذة من خلال واجهات برمجة تطبيقات ViewTree. (Idca17، I73468 b/261162296)

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

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

Kotlin Conversions

  • تم تحويل الفئتين 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" عند اكتمال عملية بدء التشغيل، وذلك لضمان تضمين جميع الرموز التي يتم تنفيذها أثناء تسلسل بدء التشغيل المتعدد اللقطات وتحديد أولويتها في عملية التجميع في الخلفية
  • إرسال إشارة إلى Macrobenchmark وPlay Vitals عند اعتبار تطبيقك مرسومًا بالكامل بالنسبة إلى مقاييس بدء التشغيل، ما يتيح لك تتبُّع الأداء

تمت إضافة واجهتَي برمجة تطبيقات 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 Activity Result على أجهزة 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 في الإصدار 13 من نظام التشغيل Android مع 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 على عمليات الإيداع هذه.

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

  • تم وضع علامة @NonNull على الطريقتَين المتوقّفتَين نهائيًا startActivityForResult وstartIntentSenderForResult في ComponentActivity لأنّ تمرير 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 ليتوافق مع الإصدار التجريبي 3 من حزمة تطوير البرامج (SDK) لنظام التشغيل 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 في الإصدار التجريبي الثاني من Android 13 للمطوّرين ضمن 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) للإصدار التجريبي الأول من Android 13.

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

  • تمت إضافة ActivityResultContracts.PickVisualMedia وActivityResultContracts.PickMultipleVisualMedia لتوفير عقد متوافق مع الإصدارات القديمة يستخدم MediaStore.ACTION_PICK_IMAGES عندما تكون أداة اختيار الصور متاحةً وIntent.ACTION_OPEN_DOCUMENT عندما لا تكون متاحةً.
  • تم دمج OnBackInvokedCallback في الإصدار التجريبي الأول من Android 13 للمطوّرين مع 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.

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

  • تم دمج التغييرات في الإصدار التجريبي الثاني من نظام التشغيل 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 عندما تعرض المكالمة launch() أي Exception وتم تسجيل الدالة بدون 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: يمكن الآن لتطبيق ComponentActivity توفير ViewModelProvider.Factory بدون حالة من خلال CreationExtras في Lifecycle 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() الفائق من خلال onPanelClosed() في ComponentActivity أيضًا، ما يؤدي إلى حلّ المشكلة التي كانت تتسبّب في عدم استدعاء الطريقة 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، الذي تم طرحه كجزء من Lifecycle 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)

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

  • تم توسيع رسالة الإيقاف النهائي لواجهات برمجة التطبيقات التي تتعامل معها الآن واجهات برمجة تطبيقات نتائج الأنشطة، أي 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 على عمليات الإيداع هذه.

تحديثات التبعيات

  • يعتمد النشاط الآن على Kotlin 1.5.21.
  • تعتمد ميزة "إنشاء النشاط" الآن على Compose 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: يوفّر العنصر activity-compose طريقة الإضافة setContent لاستضافة واجهة مستخدم Jetpack Compose في نشاط، بالإضافة إلى برامج تضمين خاصة بـ Compose للتفاعل مع واجهات برمجة التطبيقات ComponentActivity من أجل التعامل مع زر الرجوع في النظام وواجهات برمجة التطبيقات الخاصة بنتائج الأنشطة. لمزيد من التفاصيل، يمكنك الاطّلاع على المستندات.
  • عقد CaptureVideo: يحلّ العقد CaptureVideo ActivityResultContract محلّ العقد 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 واستعادتها بشكل صحيح، وبالتالي لا يتم تكرار عمليات الاستدعاء في savedState. (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 ليعتمد على 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 على عمليات الإيداع هذه.

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

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

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

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

توافق Compose

  • لا يتوافق androidx.activity:activity-compose:1.3.0-alpha08 إلا مع الإصدار 1.0.0-beta07 من Compose والإصدارات الأحدث.

الإصدار 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)
  • لن تؤدي بعد ذلك الإصدارات غير الثابتة من Fragment التي تتجاوز 1.3.0 إلى ظهور خطأ إيجابي خاطئ في أداة Lint يطلب منك استخدام 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 من "مكتبة الأنشطة": تم إصلاح مشكلة في عملية فحص InvalidFragmentVersionForActivityResult lint التي أدّت إلى ظهور نتيجة إيجابية خاطئة عند استخدام الإصدار 1.3.1 أو الإصدارات الأحدث من Fragment. (I54da1، b/182388985)
  • من Activity 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)
  • لم يعُد يضيف Activity Compose تبعيات الاختبار إلى مسار فئة وقت التشغيل. (Ifd8b3)
  • تم إصلاح مشكلة في BackHandler حيث كان يتم استخدام دالة onBack lambda التي تم ضبطها سابقًا بعد إعادة التركيب. (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 على عمليات الإيداع هذه.

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

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

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

  • تتضمّن LocalOnBackPressedDispatcherOwner الآن وظائف provides يمكن استخدامها مع CompositionLocalProvider، ما يحلّ محل واجهة برمجة التطبيقات asProvidableCompositionLocal(). (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. يجب أن يعتمد جميع مستخدمي ميزة "أريد كتابة أغنية" على الإصدار 1.3.0-alpha02 أو إصدار أحدث. (b/179911234)

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

  • يمكن استخدام واجهة برمجة التطبيقات BackHandler للسماح لأحد عناصر 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)

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

  • سيؤدي استخدام Activity Compose 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).
  • تم إصلاح خطأ lint إيجابي خاطئ يطلب منك استخدام Fragment 1.3.0 عند استخدام إصدار تجريبي أو أولي أو تجريبي أو إصدار مرشّح للإصدار من إصدار أحدث من Fragments. (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 عمليات الإيداع هذه.

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

  • تم إصلاح مشكلة في عملية فحص InvalidFragmentVersionForActivityResult lint أدت إلى ظهور نتيجة إيجابية خاطئة عند استخدام الإصدار 1.3.1 أو إصدار أحدث من Fragment. (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 Support: تتوافق المكتبة ComponentActivity الآن مع واجهات برمجة التطبيقات ViewTreeLifecycleOwner.get(View) وViewTreeViewModelStoreOwner.get(View) وViewTreeSavedStateRegistryOwner التي تمت إضافتها في Lifecycle 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 حتى يصبح Lifecycle في الحالة 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 هذه الواجهة في Fragment 1.3.0-alpha08 لاستعادة حالة FragmentManager. سيتم تنفيذ أي مستمعين تمت إضافتهم إلى فئات فرعية من FragmentActivity بعد تنفيذ هذا المستمع. (I513da)
    • تستخدم AppCompatActivity واجهة برمجة التطبيقات هذه في AppCompat 1.3.0-alpha02. سيتم تنفيذ أي مستمعين تمت إضافتهم إلى فئات فرعية من AppCompatActivity بعد تنفيذ هذا المستمع. (I513da)

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

  • تم إصلاح مشكلة في ActivityResultFragmentVersionDetector عملية فحص Lint تسبّبت في تعطُّلها عند استخدام الإصدار 27.1.0 أو إصدار أحدث من Lint. (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 على عمليات الإيداع هذه.

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

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

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

  • تم إصلاح ArrayIndexOutOfBoundsException عند تحليل النتائج الخاصة بعقد RequestPermission Activity Result. (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 هنا وفي Fragment 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)
  • تتيح واجهات برمجة التطبيقات Activity Result الآن بدء نشاط للحصول على نتيجة باستخدام 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 SavedState: أصبح 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 عمليات الإيداع هذه.

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

  • يعتمد النشاط الآن على Lifecycle 2.2.0-rc03 وLifecycle ViewModel SavedState 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 على عمليات الإيداع هذه.

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

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

الإصدار 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 في Lifecycle. (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 في Fragment 1.1.0، وبالتالي AppCompatActivity في AppCompat 1.1.0.
  • activity-ktx: يتضمّن الوحدة activity-ktx إضافة لخاصية Kotlin by viewModels تتيح الوصول إلى ViewModels. يتم تضمين هذه الوحدة تلقائيًا عند تضمين fragment-ktx من Fragment 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
  • تم الآن تصنيف onBackPressed() على أنّه @MainThread aosp/952721 بشكل صريح.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 الآن فئة مجرّدة يمكن تفعيلها أو إيقافها. ولن يتم استدعاء handleOnBackPressed() إلا عندما تعرض الطريقة الجديدة isEnabled() القيمة "صحيح"، وفي هذه الحالة يجب معالجة زر الرجوع. (aosp/944518)
  • لم تعُد طرق addCallback في OnBackPressedDispatcher تعرض مثيلاً من Cancellable. OnBackPressedCallback تتضمّن الآن طريقة remove() التي تؤدي هذه الوظيفة، ما يتيح لك طلب remove() أثناء handleOnBackPressed(). (aosp/944519) (aosp/946316)
  • يحتوي activity-ktx الآن على دالة ردّ اتصال محدودة النطاق للمستلِم خاصة بـ addCallback تقبل تعبير lambda ينفّذ 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 وتعتمد على مكتبة SavedState التي تم إصدارها حديثًا [aosp/815133].
  • تعمل فئة ComponentActivity الآن على حلّ خطأ في إطار عمل Android كان يتسبّب في تسرُّب آخر عرض تم التركيز عليه في InputMethodManager [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 property delegate جديد لاسترداد ViewModels من ComponentActivity.
  • تم الآن إلغاء أحداث الإدخال المعلّقة (مثل النقرات) في onStop().

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

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