System UI isn't responding

پرسیده شده
فعالیت 1003 روز پیش
دیده شده 733 بار
0

با سلام و وقت بخیر

برنامه ای نوشته شده که از volley استفاده میکند و در کلاس APIService به کمک متد post اطلاعات کاربر را دریافت میکند به LoginActivity   به کمک یک callback منتقل میکند. 

و سپس به کمک Intent جدید LoginActivity  اکتیوتی MainActivity را باز میکند  خودش finish میشود. MainActivity شامل Homefragment است. کارها به درستی انجام میشه.

 

 اما در شبیه ساز بعد از مدتی پیام System UI isn't responding به نمایش در میاد.

 

با توجه به اینکه API استفاده شده localhost است در گوشی واقعی امکان تست ندارم. 

سوالم من این است که مگر volley برای دریافت اطلاعات از یک ترد دیگر استفاده نمیکند؟

وقتی که کار با Volley به اتمام رسیده مگر فقط ترد Main نیست که در اختیاز Ui هست؟

 

به نظر شما در گوشی واقعی هم همین مشکل پیش میاد؟

راه حل چیست؟

فایل پیوست

0
حذف شده

سلام وقت بخیر

لایبرری volley درخواست ها رو روی یک thread جدید ارسال میکنه اما callback ها روی thread اصلی کال میشن بنابراین اگر کارهای سنگینی داخل این callback ها انجام بدین امکان block شدن ui هست. اما این پیغامی که سیستم عامل بهتون میده رو با دنبال کردن مسیر زیر میتونید برطرف کنید

AVD Manager -> select your avd -> Edit this AVD -> Emulated Performance -> Graphics -> Set on Automatic
فایل پیوست

میلاد عزیززاده گلنگشی

توسط

میلاد عزیززاده گلنگشی

9 مرداد 00

حذف شده
متشکر. گرافیک Automatic هست. نیاز به تغییر نداشت. بحث بلاک شدن حین callback نیست. calback انجام شده. به یک اکتیویتی دیگه منتقل شدیم. شاید پنج ، شش دقیقه بعد شبیه ساز پیام System UI isn't responding میده و وقتی ok میکنم دوباره بدون اشکال صفحه قبلی نمایش داده میشه. مشکل از شبیه سازه یا برنامه
حذف شده
اگه در حالت دیباگ باشین و بعد از یک مدت زمان مشخص سیستم عامل هیچ واکنشی از اپلیکیشن شما نبینه این پیغام رو به کاربر میده تا تصمیم بگیره که میخواد منتظر بمونه یا برنامه رو ببنده در حالت عادی که دیباگ نمیکنید این پیغام ظاهر نمیشه اما اگر ui بلاک بشه ارور ANR میده
حذف شده
برنامه را debug نکردم بلکه run را زدم. یعنی برنامه مشکلی داره؟
حذف شده
من برنامه هام به این شکلی که شما میگین تا حالا ب مشکل نخوردن به احتمال زیاد کدنویسیتون مشکل داره
حذف شده
در بخش ADV Manager شبیه ساز مربوطه را انتخاب کردم و Wipe data زدم. مشکل حل شد