سلام دوستان تاپیک های قدیمی رو مطالعه کردم و از اونجا که سیاست انجمن این هست که تاپیک قدیمی رو بالا نیاریم جدیدش رو زدم البته اینجا تصمیم داریم با کمک هم مشکلات کلی اینترنت رو برطرف کنیم .
ما می تونیم با روشهای مختلف اتصال به اینترنت رو چک کنیم . به عنوان مثال با دانلود کردن یک فایل و یا استفاده از کتابخونه ها
به عنوان مثال با یک ساب :
Sub conect_ConnectivityChanged (NetworkType As String, State As String, Intent As Intent)
If State="CONNECTED" Then
' دستورات لازم برای زمانی که اینترنت متصل است
Else
' اینترنت قطع است و صفحه ی پیام دیسکانکت را نمایش بده
End If
End Sub
خوب قبلش هم یک متغیر از نوع فون اونت میسازیم :
Dim con As PhoneEvents
مشکلی که توی کد بالا وجود داره این هست که اگه گوشی ما به تریجی یا فروجی ( اینترنت سیم کارت ) متصل باشه اما سیم کارتمون شارژ نداشته باشه برنامه باز هم فکر می کنه ما به اینترنت متصل هستیم . و یا زمانی که گوشی به وای فای متصل باشه و نت نداشته باشیم باز هم متوجه نمیشه که ما اینترنت نداریم .
اشکال کار زمانی خودش رو نشون میده که ما یک کد رو بفرستیم به صفحه ی php و بعد منتظر باشیم که صفحه ی php جواب ما رو برگردونه و این بین برای لحظه ای هم نت قطع بشه و باز متصل بشه مشکل پیش میاد . چرا که برنامه کد رو به دلیل قطع شدن لحظه ای نتونسته بفرسته و بعد رفته قسمتی از برنامه ( قسمت پاسخ job ) که نیاز به جواب php داره . اما صفحه ی php هم که چیزی نگرفته که چیزی بخواد برگردونه .
به عنوان مثال : یک متغیر از نوع اچ تی تی پی جاب میسازیم :
Dim ht As HttpJob
بعد میایم و یک کد رو بهش میدیم :
ht.Initialize("get",Me)
Dim po As String
po="meli=" & meli & "&password="& password
ProgressDialogShow2("در حال ورود به حساب کاربری",False)
ht.PostString( link & "admin/get.php",po)
حالا تصور کنین زمان اجرای این کد اینترنت برای لحظه ای قطع بشه . برنامه متوجه نمیشه و میره به قسمت ساب جاب
Sub JobDone (job As HttpJob)
If job.Success Then
If job.JobName="get" Then
کدهایی که می خوایم اجرا بشه
ProgressDialogHide
End If
Else
ToastMessageShow("اتصال برقرار نیست و یا مشکلی پیش آمده است",True)
End If
End Sub
به نظرم میشه یک تایمر گذاشته که با ارسال داده به php شروع بشه و بعد از مثلا دو ثانیه ( بستگی به داده ها و پردازش php داره ) در صورتی که جاب ما موفقیت آمیز نبود دوباره کد رو به php ارسال کنه .
سوال
ahmandir 11
سلام دوستان تاپیک های قدیمی رو مطالعه کردم و از اونجا که سیاست انجمن این هست که تاپیک قدیمی رو بالا نیاریم جدیدش رو زدم البته اینجا تصمیم داریم با کمک هم مشکلات کلی اینترنت رو برطرف کنیم .
ما می تونیم با روشهای مختلف اتصال به اینترنت رو چک کنیم . به عنوان مثال با دانلود کردن یک فایل و یا استفاده از کتابخونه ها
به عنوان مثال با یک ساب :
Sub conect_ConnectivityChanged (NetworkType As String, State As String, Intent As Intent) If State="CONNECTED" Then ' دستورات لازم برای زمانی که اینترنت متصل است Else ' اینترنت قطع است و صفحه ی پیام دیسکانکت را نمایش بده End If End Sub
خوب قبلش هم یک متغیر از نوع فون اونت میسازیم :
Dim con As PhoneEvents
مشکلی که توی کد بالا وجود داره این هست که اگه گوشی ما به تریجی یا فروجی ( اینترنت سیم کارت ) متصل باشه اما سیم کارتمون شارژ نداشته باشه برنامه باز هم فکر می کنه ما به اینترنت متصل هستیم . و یا زمانی که گوشی به وای فای متصل باشه و نت نداشته باشیم باز هم متوجه نمیشه که ما اینترنت نداریم .
اشکال کار زمانی خودش رو نشون میده که ما یک کد رو بفرستیم به صفحه ی php و بعد منتظر باشیم که صفحه ی php جواب ما رو برگردونه و این بین برای لحظه ای هم نت قطع بشه و باز متصل بشه مشکل پیش میاد . چرا که برنامه کد رو به دلیل قطع شدن لحظه ای نتونسته بفرسته و بعد رفته قسمتی از برنامه ( قسمت پاسخ job ) که نیاز به جواب php داره . اما صفحه ی php هم که چیزی نگرفته که چیزی بخواد برگردونه .
به عنوان مثال : یک متغیر از نوع اچ تی تی پی جاب میسازیم :
Dim ht As HttpJob
بعد میایم و یک کد رو بهش میدیم :
ht.Initialize("get",Me) Dim po As String po="meli=" & meli & "&password="& password ProgressDialogShow2("در حال ورود به حساب کاربری",False) ht.PostString( link & "admin/get.php",po)
حالا تصور کنین زمان اجرای این کد اینترنت برای لحظه ای قطع بشه . برنامه متوجه نمیشه و میره به قسمت ساب جاب
Sub JobDone (job As HttpJob) If job.Success Then If job.JobName="get" Then کدهایی که می خوایم اجرا بشه ProgressDialogHide End If Else ToastMessageShow("اتصال برقرار نیست و یا مشکلی پیش آمده است",True) End If End Sub
به نظرم میشه یک تایمر گذاشته که با ارسال داده به php شروع بشه و بعد از مثلا دو ثانیه ( بستگی به داده ها و پردازش php داره ) در صورتی که جاب ما موفقیت آمیز نبود دوباره کد رو به php ارسال کنه .
دوستان روش بهتری دارن ؟ بگن تا ما هم یاد بگیریم
لینک ارسال
به اشتراک گذاری در سایت های دیگر
0 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.