النشاط

الوصول إلى واجهات برمجة التطبيقات القابلة للتجميع والمُنشأة على "نشاطك على Google"
آخر تعديل الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار التجريبي الأول
13 تشرين الثاني (نوفمبر) 2024 1.9.3 - 1.10.0-beta01 -

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

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

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

Groovy

dependencies {
    def activity_version = "1.9.2"

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

Kotlin

dependencies {
    val activity_version = "1.9.2"

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

لمزيد من المعلومات عن العناصر الاعتمادية، اطّلِع على مقالة إضافة عناصر الاعتماد الخاصة بالإصدار.

ملاحظات

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

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

اطّلِع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.

الإصدار 1.10

الإصدار 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 بعد الآن طلب الاستدعاء بعد إيقاف معالِج الطلب. سيؤدي ذلك إلى حلّ مشكلة ظهور IndexOutOfBoundsException عند استخدام NavHost من ميزة "التنقّل". (I3f75e، b/365027664، b/340202286)

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

  • يعتمد Activity Compose الآن على Compose Runtime 1.7.0 (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 مع AGP 7.3 أو إصدار أحدث (مثل R8 الإصدار 3.3) ولجميع الإصدارات عند استخدام AGP 8.1 أو إصدار أحدث (مثل D8 الإصدار 8.1). ننصح العملاء الذين لا يستخدمون AGP بالترقية إلى الإصدار 8.1 من D8 أو إصدار أحدث. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (I9496c، b/345472586)
  • من Activity 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 جديدة تم تقديمها في الإصدار V من Android، بما في ذلك إمكانية اختيار الصور بالترتيب واختيار علامة التبويب (إما الألبومات أو الصور) التي يجب أن تكون مرئية في البداية.

الإصدار 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 طلب الاستدعاء بعد إيقاف المعالج. سيؤدي ذلك إلى حلّ مشكلة ظهور IndexOutOfBoundsException عند استخدام NavHost من ميزة "التنقّل". (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() عند معالجة الرجوع لأنّ ذلك سيؤدي دائمًا إلى إيقاف الحركة المتوقّعة للرجوع. يمكنك الاطّلاع على دليل أفضل الممارسات للحصول على مزيد من التفاصيل.
  • تمت إعادة كتابة الباقي من واجهات برمجة التطبيقات Activity API بلغة 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. (Id4615)
  • أصبح الحد الأدنى لمستوى واجهة برمجة التطبيقات في PickVisualMediaRequest هو 19، وهو نفسه الحد الأدنى لمستوى واجهة برمجة التطبيقات في PickVisualMedia Activity Result contract. (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 لمعالجة أحداث إيماءات الرجوع التوقّعية في ميزة "إنشاء الأنشطة". يقدّم هذا العنصر مسارًا لعناصر 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 عنصرًا يجب جمعها في متغير 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
      }
    }
    

    ويتضمن أيضًا تحذيرًا في وقت الترجمة من خلال قاعدة lint لضمان أنّ Flow تستدعي collect(). (Id2773، b/294884345)

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

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

  • لن يعرض ComponentActivity بعد الآن خطأ NPE على Android 13 عند تلقّي مكالمة onBackPressed() بعد أن تم DESTROYED النشاط. (Idb055، b/291869278)
  • تمّت إزالة استخدامات واجهة برمجة التطبيقات التجريبية isAtLeastU() API (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)

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

  • تم إصلاح مشكلة كانت تؤدي إلى إبطال صحة عناصر MenuHost بشكلٍ غير صحيح من قِبل "الأجزاء"، ما كان يتسبب في ظهور سلوك غير متوقّع في القوائم الأخرى في "النشاط". (I9404e، b/244336571)

تغييرات أخرى

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

تمت إضافة ثلاث واجهات برمجة تطبيقات لإنشاء الأنشطة لتسهيل استخدام 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) API، والتي ستظهر إذا كان أيّ من "أداة اختيار الصور" متاحًا. (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

  • تم تحويل كلّ من فئة 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 Activity Result على أجهزة 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 Runtime عند اكتمال عملية بدء التشغيل، لضمان تضمين كل الرمز البرمجي الذي يتم تشغيله أثناء تسلسل بدء التشغيل المتعدّد اللقطات وإعطائه الأولوية في عملية التجميع في الخلفية
  • إرسال إشارات إلى "مقاييس الأداء الرئيسية" و"مؤشرات 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 Activity Result contract على أجهزة 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 الآن طلبات القائمة بشكلٍ صحيح بدون الحاجة إلى استدعاء الدالة super في نشاطك. (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)
  • إنّ الفصول التي تلغي ComponentActivity onPictureInPictureModeChanged() طلبات إعادة الاتصال سترسل الآن طلبات إعادة الاتصال دائمًا. (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() بدون الحاجة إلى طلب الدالة super. (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 في فرع خاص بالإصدار التجريبي ولا يتضمّن أي عمليات إرسال علنية.

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

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

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

  • تم إصلاح الأعطال على الأجهزة القديمة عند التحقّق من إضافة حزمة تطوير البرامج (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 حيث كانت محاولة إنشاء طلب، إما من خلال Builder أو دالة Kotlin ذات المستوى الأعلى، تؤدي إلى حدوث تدفّق زائد للذاكرة.
  • دمج OnBackInvokedCallback في الإصدار التجريبي 2 من الإصدار المخصّص للمطوّرين من نظام التشغيل 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 Developer Beta 1.

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

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

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

  • تم دمج التغييرات في الإصدار 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 عندما تُعرِض مكالمة launch() أيException وتم تسجيل طلب معاودة الاتصال بدون LifecycleOwner. (Ia7ff7، b/238350794)

  • سيرسِل ComponentActivity الآن طلبات القائمة بشكل صحيح إلى عمليات إلغاء onPrepareOptionMenu() وonCreateOptionsMenu() وonOptionsItemSelected() بدون الحاجة إلى استدعاء الدالة super. (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 في 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 طريقة super 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، الذي تم تقديمه كجزء من 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 للمرة الأولى من callback registerForActivityResult() أو callback إلى 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 لم يتم تسجيله أو تم IllegalStateException تسجيله. (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.
  • تعتمد ميزة "كتابة النشاط" الآن على ميزة "الكتابة" 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 من أجل التعامل مع زر الرجوع في النظام وواجهات برمجة تطبيقات Activity Result. راجِع المستندات للحصول على مزيد من التفاصيل.
  • عقد 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 callbacks بشكلٍ سليم واستعادتها حتى لا يتم تكرار وظائف الاستدعاء في 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 تشير إلى ما إذا تم بنجاح حفظ الفيديو في عنوان URL المحدّد. يحلّ هذا العقد محلّ عقد TakeVideo الذي تم إيقافه نهائيًا، لأنّ تطبيقات الكاميرا نادرًا ما كانت توفّر عرض صورة مصغّرة بتنسيق bitmap، ما يجعل النتيجة غير مفيدة. (Ie21f2، b/185938070)
  • تمت إضافة واجهة برمجة تطبيقات جديدة Activity#setPipAnimationHintView لتعديل تلميح مستطيل مصدر PipParams عند تحريك العرض. (I9063d)

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

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

توافق تطبيق Compose

  • لا يتوافق 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 مرة أخرى، وتمت إضافة callbacks أخرى باستخدام 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 التي أدّت إلى نتيجة إيجابية خاطئة عند استخدام الإصدار 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)
  • لم تعُد أداة 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 على هذه المراجعات.

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

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

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

  • من Activity 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 من Fragment عند استخدام إصدار أو إصدار تجريبي أو إصدار RC من إصدار أحدث من 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 check أدّت إلى ظهور نتيجة إيجابية خاطئة عند استخدام الإصدار 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 واجهة برمجة التطبيقات هذه في الإصدار 1.3.0 من القسم لاستعادة حالة FragmentManager. سيتم تنفيذ أي مستمعين تمت إضافتهم إلى الفئات الفرعية من FragmentActivity بعد هذا المستمع.
    • يستخدم AppCompatActivity واجهة برمجة التطبيقات هذه في AppCompat 1.3.0-alpha02 أو إصدار أحدث. سيتم تنفيذ أي مستمعين تمت إضافتهم إلى الفئات الفرعية من AppCompatActivity بعد هذا المستمع.
  • ViewTree التوافق: يتيح 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 ليصبح 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)

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

  • تم إصلاح مشكلة في عملية التحقّق من ActivityResultFragmentVersionDetector Lint التي أدّت إلى إيقافها عند استخدام 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 على هذه المراجعات.

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

  • تمت إضافة فحص جديد InvalidFragmentVersionForActivityResult للتنقيح للتأكّد من أنّك تستخدِم الجزء 1.3.0-alpha07 عند استخدام Activity Result API، ما يتجنّب الأعطال أثناء التشغيل بسبب مشاكل "رمز الطلب غير صالح" وطلبات الأذونات غير الصالحة الناتجة عن استخدام إصدارات قديمة من "الأجزاء". (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 هنا وفي القطعة 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 APIs بدء نشاط للنتيجة باستخدام 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

  • دمج SavedState في Lifecycle ViewModel: أصبح 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 على هذه المراجعات.

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

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

الإصدار 1.1.0-alpha03

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

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

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

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

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

الإصدار 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
  • تم وضع علامة على onBackPressed() لـ ComponentActivity على أنّه @MainThread aosp/952721.

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

  • تم إصلاح 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.

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

  • تمت إضافة ميزة تتيح لك الإشارة إلى ملف XML للتنسيق الذي يجب توسيعه كبديل لاستخدام setContentView()، وذلك من خلال التعليق التوضيحي لفئة @ContentView. (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() callbacks بدون الحاجة إلى إلغاء الطريقة في نشاطك.
  • تمت إضافة by viewModels() مفوّض سمة Kotlin جديد لاسترداد ViewModel من ComponentActivity.
  • تم الآن إلغاء أحداث الإدخال في انتظار المراجعة (مثل النقرات) في onStop().

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

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