رفتن به مطلب
  • 0

مشکل عجیب با اجرای یک تابع در سرویس


fun_code

سوال

سلام دوستان

من یه مشکل عجیب برام پیش اومده که ممنون میشم راهنمایی بفرمایید.

بنده در یک سرویس متغیر سوکت تعریف کردم و این متغیر با یک وب سایت در ارتباطه...

دلیل تعریف در سرویس هم این بود که وقتی برنامه هم در حال اجرا نیست متغیر در حال ارتباط باشه...

رویداد سوکت هم AStream_NewData هست که وقتی پیامی از سایت دریافت میشه در رویداد AStream_NewData قابل استفاده است.

عجیب اینجا است که گاهی اوقات وقتی برنامه رو با دکمه Home غیرفعال میکنم ، رویداد تایمر از طریق سوکت پیام میفرسته ، اما زمان دریافت پیام رویداد AStream_NewData اجرا نمیشه و به محض ورود به برنامه رویداد AStream_NewData اجرا میشه ! (با اینکه در لاگ نشون نمیده که رویداد AStream_NewData در صف اجرا شدن است)

گاهی هم مشکلی نداره و رویداد AStream_NewData اجرا میشه !

دلیل چیه ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

7 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در 20 ساعت قبل، AMiN.M7892 گفته است :

دوست عزیز،

باید این سوالتون رو در تاپیک جداگانه ای ارسال میکردید!

اما پاسخ سوال این هست که شما باید از MsgBoxAsync استفاده کنید.

بسیار ممنونم از پاسخگوییتون... دیدم تاپیک سمت و سوی عدم کارکرد سرویس پیدا کرده و مشکل msgbox هم اینجا گفتم. راستش قبلا هم پرسیده بودم و جوابی نگرفتم.

جالبه تا الان در لیست توابع و دستورات ندیده بودمش !

حتی در همین سایت هم جستجو کردم و مطلبی راجع بهش نبود !

شما چطور متوجهش شدید و تا الان استفاده هم کردید ؟ انگار در ورژن های جدید B4A اومده و نمیدونم روی اندرویدهای 4 تا 6 هم بطور کامل جواب میده !

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بله توی نسخه 7.0 یا 7.3 بیسیک فکر کنم اضافه شده.

درباره نخ ها(Thread) بخونید متوجه عملکردش میشید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام. سرویس رو foreground کنید ببینید درست نمیشه.

Dim n As Notification
	n.Initialize
	n.Icon = "icon"
	n.SetInfo("Some title", "Some text", Main)

Service.StartForeground(1,n)

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز،

اول از همه این کد رو در Region Service Attributes تست کنید:

	#StartCommandReturnValue: android.app.Service.START_STICKY

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 22 ساعت قبل، rasool.g گفته است :

سلام. سرویس رو foreground کنید ببینید درست نمیشه.


Dim n As Notification
	n.Initialize
	n.Icon = "icon"
	n.SetInfo("Some title", "Some text", Main)

Service.StartForeground(1,n)

 

سلام

در ابتدا از همراهیتون بسیار متشکرم

با کد بالا احتمالا برای همیشه درست میشه اما اگر بخوام عنوان و محتوایی به نوتیفیکیشن ندم یا شماره نوتیفیکیشن رو 0 بدم ، در بعضی از دستگاه ها منجر به نمایش نوتیفیکیشن خالی میشه... و مارکت ها ایراد میگیرن.

مثلا الان حدود 30 دقیقه است که درسته... اما گاهی اوقات مجددا رویداد مربوطه اجرا نمیشه.

اما در کل حدود یک ماه بدون مشکل کار میکرد و الان اینجوری شده... یعنی عملا ماهیت سرویس بودنش رو از دست میده... یعنی چی که وقتی پیامی دریافت میشه رویداد مربوطه اجرا نشه ؟!

میگم از نسخه جدید B4A نیست ؟ من از این مشکلات عجیب و غریب زیاد دیدم در نسخه های جدیدش...

 

در 21 ساعت قبل، AMiN.M7892 گفته است :

دوست عزیز،

اول از همه این کد رو در Region Service Attributes تست کنید:


	#StartCommandReturnValue: android.app.Service.START_STICKY

 

تست کردم و نشد.

 

جالب اینجا است که جهت تست یه job ساختم و تست کردم و تا مدتی اون مشکل هم حل شده بود ! اما با حذف job پس از مدتی دوباره مشکل نمایان شد !

جالبه تایمرها در سرویس کار میکنن !

لینک ارسال
به اشتراک گذاری در سایت های دیگر

مهندسین ، چرا وقتی در اکتیویتی از Msgbox استفاده میکنیم ، تا زمانی که پیغام مشاهده میشه ، کل تایمرها غیرفعال هستن ! حتی تایمرهای موجود در سرویس ؟!

یعنی کلی درگیری دارم با این استثناهای اندروید ! یا شاید هم B4A ... !

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز،

باید این سوالتون رو در تاپیک جداگانه ای ارسال میکردید!

اما پاسخ سوال این هست که شما باید از MsgBoxAsync استفاده کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...