النشاط
آخر تعديل | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار التجريبي الأول |
---|---|---|---|---|
13 تشرين الثاني (نوفمبر) 2024 | 1.9.3 | - | 1.10.0-beta01 | - |
الإعلان عن التبعيات
لإضافة تبعية على Activity، عليك إضافة مستودع Google Maven إلى مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف التبعيات للعناصر التي تحتاج إليها في ملف build.gradle
ل
تطبيقك أو وحدتك:
Groovy
dependencies { def activity_version = "1.9.3" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Kotlin
dependencies { val activity_version = "1.9.3" // 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 ComposePredictiveBackHandler
في معالجة إيماءة الرجوع في النظام على الإطار الذي تم إيقافه، ما قد يؤدي إلى معالجة مكتبات مثل 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 عمليات الربط هذه.
تعديل التبعيات
- يعتمد النشاط الآن على Profile Installer 1.3.1.
الإصدار 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 على هذه المراجعات.
تحذير بشأن الوبر
- تُرسل واجهات برمجة التطبيقات
OnBackPressedCallback
وBackHandler
وPredictiveBackHandler
الآن تحذيرًا عند استدعاءonBackPressedDispatcher.onBackPressed()
عند معالجة الرجوع لأنّ ذلك سيؤدي دائمًا إلى إيقاف الحركة المتوقّعة للرجوع. يمكنك الاطّلاع على دليل أفضل الممارسات للحصول على مزيد من التفاصيل. (1e4222 و2c950d وb/287505200)
إصلاح الأخطاء
- إذا تم إرسال حدث الرجوع من النظام الذي بدأ أثناء تنفيذ إيماءة الرجوع التوقّعية، يتم إلغاء إيماءة الرجوع التوقّعية التي يتم تنفيذها حاليًا ويتولى حدث الرجوع الجديد بدء إيماءة رجوع توقّعية جديدة. (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)
تعديل التبعية
- يعتمد النشاط الآن على Core
1.13.0-alpha01
. (I14f31)
الإصدار 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
، يمكنك الآن إلغاء مَعلمة lambdadetectDarkMode
لتقديم منطق مخصّص لرصد الوضع الليلي. (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.7.2
: يجب إصلاح تعطُّلReportDrawn
عند الانتقال بعيدًا عن شاشة قبل استدعاءreport
. (Ic46f1، b/260506820)
الإصدار 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.7.1 من تطبيق "نشاط Google": - لم تعُد
ReportFullyDrawExecuter
تتسرّب عند استخدامComponentActivity
معActivityScenario
. (Id2ff2، b/277434271)
الإصدار 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
الآن KotlinRandom
بدلاً من 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.7.0-rc01
: يعتمد النشاط الآن علىLifecycle 2.6.0
.
الإصدار 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
طريقة تعليق تشير إلى أنّك جاهز للتفاعل عند اكتمالها.
تعديلات على التبعيات
- يعتمد النشاط الآن على مرحلة النشاط
2.6.1
. (8fc31d) - يعتمد النشاط الآن على ProfileInstaller
1.3.0
. (83d3b1)
الإصدار 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 على هذه المراجعات.
تعديل التبعيات
- يعتمد النشاط الآن على
Lifecycle 2.6.0
.
الإصدار 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)
تعديل التبعية
- أصبحت مكتبة
Activity
تعتمد الآن على Lifecycle2.5.1
. (If6697)
الإصدار 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.5.1
: تعتمد مكتبةActivity
الآن على الإصدار2.5.1
منLifecycle
. (If6697)
الإصدار 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)
تعديل التبعيات
- أصبحت مكتبة
Activity
تعتمد الآن على Lifecycle2.5.1
. (If6697)
الإصدار 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 على هذه المراجعات.
تعديلات على التبعيات
- يعتمد النشاط الآن على مرحلة النشاط
2.4.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
طريقة superonPanelClosed()
أيضًا، ما يحلّ مشكلة عدم استدعاء طريقة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، الذي تم تقديمه كجزء من Lifecycle2.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
للمرة الأولى من callbackregisterForActivityResult()
أو 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 على هذه المراجعات.
الميزات الجديدة
- يحتوي العنصر
activity-compose
الآن على خطأLaunchDuringComposition
في أداة فحص الأخطاء يمنع من استدعاء طريقةlaunch
فيActivityResultLauncher
كجزء من عملية الإنشاء، لأنّ عملية الإنشاء يجب أن تكون خالية من الآثار الجانبية. استخدِم واجهات برمجة التطبيقات للتعامل مع التأثيرات الجانبية. (7c2bbe، b/191347220)
تغييرات واجهة برمجة التطبيقات
- تمت إعادة كتابة فئة
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)
المساهمة الخارجية
الإصدار 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)
تعديلات على التبعيات
- اعتبارًا من Activity 1.2.2: يعتمد النشاط الآن على Lifecycle
2.3.1
.
الإصدار 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)
تعديلات على التبعيات
- يعتمد النشاط الآن على مرحلة النشاط
2.3.1
.
الإصدار 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
بعد هذا المستمع.
- تتيح لك إضافة Kotlin المعلّقة
ViewTree
التوافق: يتيحComponentActivity
الآن واجهات برمجة التطبيقاتViewTreeLifecycleOwner.get(View)
وViewTreeViewModelStoreOwner.get(View)
وViewTreeSavedStateRegistryOwner
التي تمت إضافتها في Lifecycle2.3.0
وSavedState1.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)
- تتيح لك إضافة Kotlin المعلّقة
إصلاح الأخطاء
- تم إصلاح مشكلة في عملية التحقّق من
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 على هذه المراجعات.
الميزات الجديدة
- تمت إضافة إمكانية استخدام
ViewTreeViewModelStoreOwner
من Lifecycle2.3.0-alpha03
وViewTreeSavedStateRegistryOwner
من SavedState1.1.0-alpha01
عند استخدامView
ضمنComponentActivity
. (aosp/1297993، aosp/1300264)
تغييرات واجهة برمجة التطبيقات
- يعرض عقد
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 SavedState1.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.
إصلاح الأخطاء
- يعتمد النشاط الآن على مرحلة النشاط
2.2.0-alpha04
.
الإصدار 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
في AppCompat1.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
لتخزين العناصر التي يجب أن تظل محفوظة عند إجراء تغييرات على الإعدادات.