ورود

View Full Version : تعداد لایوت یا اکتیویتی زیاد



mfaridi
چهارشنبه 28 اسفند 1392, 11:09 صبح
سلام یه سوال داشتم تعداد اکتیویتی زیاد یا لایوت زیاد تاثیری روی سرعت برنامه داره یا نه

saeed_g21
چهارشنبه 28 اسفند 1392, 11:15 صبح
بنظر من اگه اکتیویتی هایی که باز میکنی بدرستی ببندی و پشت صحنه باز نمونه نه زیاد روی سرعت تاثیر گذارنیست

mfaridi
چهارشنبه 28 اسفند 1392, 13:37 عصر
چطور اکتیویتی بسته میشه؟یعنی چطور حذف میکنیم؟

smemamian
چهارشنبه 28 اسفند 1392, 23:45 عصر
سلام یه سوال داشتم تعداد اکتیویتی زیاد یا لایوت زیاد تاثیری روی سرعت برنامه داره یا نه
در واقع 2 سوال پرسیدید:

1 - تعداد اکتیویتی زیاد تاثیری روی سرعت برنامه داره؟
بله.
Activtiyها به ترتیب در Stack قرار می گیرن. تعدد Activityهایی که
توی Stack قرار می گیرند در گوشی های مختلف متفاوت است.
اگر برنامه شما تعداد زیادی Activity رو اجرا کنه مسلماً سرعــــت تمام
قسمت های گوشی پایین میاد و سیستم مجبور به Kill کردن Activity
دیگه یا سرویس ها و... میشه.


2 - تعداد Layout زیاد تاثیری روی سرعت برنامه داره؟
اگه منظورتون تعداد تورفتگی هستش،بله.
مستندات اندورید پیشنهاد می کنه که حداکثر تورفتگی
10 عدد باشه، و برای کارایی بهتر، مناسبت ترین تورفتگی
5 الی 6 عدد هستش.
شما در نظر بگیرید قرار هست توی این تورفتگی با فرض
10تا، آخرید View قرار هست تغییر کنه !!!
برای بررسی میزان تورفتگی برنامه، می تونید از ابزار
HierarchyViewer استفاده کنید.


----------
3 - چطور اکتیویتی بسته میشه؟یعنی چطور حذف میکنیم؟
این بستگی به منطق برنامه شما داره. شما در نظر بگیرید 4
Activity به ترتیب A - B - C - D دارید.
کاربر در Activity به اسم D قرار داره، کدام Activity قرار هست
Kill بشه؟


جواب کلی :
اگه فرض رو بگیریم قرار هست کاربر از Activity به اسم D قرار هست
به Activity به اسم A برود، شما باید تمامی Activityهای موجود در
Stack رو Kill کنید. پس در Activity به اسم D شما باید در تابع مورد
نظرتون چنین فراخوانی رو انجام بدین :


Intent intent = new Intent(getApplicationContext(),A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

پس تمامی Avtivityهایی که بعد از A توی Stack قرار گرفتن
Kill خواهند شد.

abbasalim
چهارشنبه 28 اسفند 1392, 23:57 عصر
سلام
معمولا وقتی تعداد اکتیویتی ها زیاد میشه که برنامه نویس خوب کارشو انجام نداده باشه
همیهش راههای بهینه تری هم هست