تمرير البيانات من النوع غير البدائي بين الأنشطة في android

StackOverflow https://stackoverflow.com/questions/1441871

سؤال

لنفترض أنك تريد بدء نشاط جديد وتمرير بعض البيانات من النشاط الحالي إليه.إذا كانت البيانات من النوع البدائي، فيمكنك ببساطة استخدام غرض وإضافة إضافات، ولكن كيف يمكنك القيام بذلك مع هياكل البيانات الأكثر تعقيدًا مثل قوائم المصفوفات أو الكائنات؟

هل كانت مفيدة؟

المحلول

لديك بعض الخيارات:

  1. يمكنك تغليف البنية الأكثر تعقيدًا في فئة تنفذ Parcelable واجهة، والتي يمكن تخزينها في اضافية
  2. يمكنك تغليف البنية الأكثر تعقيدًا في فئة تنفذ Serializable واجهة، والتي يمكن تخزينها في اضافية
  3. يمكنك استخدام أعضاء البيانات الثابتة لتمرير الأشياء، حيث أنهم جميعًا في نفس العملية
  4. يمكنك استخدام وحدة تخزين خارجية (ملف، قاعدة بيانات، SharedPreferences)
  5. كما لاحظ الشخص الذي نشر للتو، استخدم مكونًا شائعًا، مثل المخصص Application أو محلي Service

ما لا تريد القيام به هو تمرير الأشياء الكبيرة عبر الإضافات.على سبيل المثال، إذا كنت تقوم بإنشاء تطبيق يلتقط الصور من الكاميرا، فأنت لا تريد تمريرها إلى الإضافات - استخدم عضو بيانات ثابت (كما يبدو هذا رديئًا).تم تصميم النوايا للعمل عبر العمليات، مما يعني أن هناك قدرًا ما من نسخ البيانات مستمرًا، والذي تريد تجنبه عندما لا يكون ذلك ضروريًا للأشياء الكبيرة.

نصائح أخرى

وخيار واحد وأنا على علم وتخزين البيانات التي تستخدم في كائن التطبيق فيه جميع الأنشطة الخاصة بك يمكن استرداد من السياق.

ولقد سمعت أيضا استخدام جوجل بروتوكول العازلة للتحقيق حل الأداء العالي

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top