amir mahdizadeh 109 ارسال شده در 31 خرداد، ۱۳۹۵ اشتراک گذاری ارسال شده در 31 خرداد، ۱۳۹۵ سلام دوستان من یه برنامه دارم و توش از کتابخونه PNbroadcastReciver استفاده کردم و باهاش یهالارم ساختم به این صورت که 2 تا اسپینر دارم که زمان رو از کاربر میگیرم (یکی ساعت و یکی دقیقه) ساعت شروع مصرف یه اسپینر دیگه دارم که نحوه مصرف دارو رو از کاربر میگیرم(مثلا هر 8 ساعت) یدونه هم ادیت تکست دارم که تعداد دارو رو از کاربر میگیرم این اطلاعات توی دیتابیس دخیره میشه بعد برنامه سر ساعت مصرف دارو یه موزیک رو به عنوان الارم پخش میکنه حالا مشکل اینجاس که برنامه یر بعضی از ساعات مثلا 14:30 یا 20:30 یا 8:30 یا 2:30 یا .....(کلا ساعت هایی که نیم دارن) فورس کلوز میده مثلا برنامه کلا بستس اما سر ساعت 16:30 که میشه یهو force close میده در صورتی که من هنوز الارم هم ست نکردم امید وارم متوجه شده باشین و بتونین کمکم کنید با تشکر لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 31 خرداد، ۱۳۹۵ اشتراک گذاری ارسال شده در 31 خرداد، ۱۳۹۵ سلام کدهای رویداد OnReceive تون رو بذارید. حتما یکاری انجام دادین که باعث میشه اون ساعت فورس کلوز بشه. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir mahdizadeh 109 ارسال شده در 31 خرداد، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 31 خرداد، ۱۳۹۵ Sub pn_OnReceive(Action As String,keys() As String,Data As Object) Dim t As tabdilAdadBeEn t.Initialize If File.Exists(File.DirInternal,"databaseaz.db") = False Then File.Copy(File.DirAssets,"databaseaz.db",File.DirInternal,"databaseaz.db") End If If sql3.IsInitialized = False Then sql3.Initialize(File.DirInternal,"databaseaz.db",True) End If cur3 = sql3.ExecQuery("SELECT * FROM drug WHERE number_of_drug > 0") For i = 0 To cur3.RowCount - 1 cur3.Position = i Dim doz As Int Dim result As Int Dim x As String = cur3.GetString("doz") Select x Case "هر 4 ساعت" doz = 4 Case "هر 6 ساعت" doz = 6 Case "هر 8 ساعت" doz = 8 Case "هر 12 ساعت" doz = 12 Case "هر 24 ساعت" doz = 24 Case "هر 3 روز" doz = 72 Case "هر هفته" doz = 168 End Select Dim t1 As String=DateTime.Time(DateTime.Now) t1=t1.SubString2(0,2) t1=t.Tabdil(t1) result = (t1-cur3.GetInt("start_time_h")) result = result - ((result / doz) * doz) If Action="android.intent.action.TIME_TICK" Then Dim time As String=cur3.GetString("start_time_m") Dim time2 As String=DateTime.Time(DateTime.Now) time=t.Tabdil(time) time2=time2.SubString2(3,5) time2=t.Tabdil(time2) If result = 0 And time2 = time And cur3.GetInt("number_of_drug") > 0 Then n.Initialize n.Icon="icon" n.OnGoingEvent=True n.AutoCancel=True drug.cur2 = drug.sql2.ExecQuery("SELECT name FROM person WHERE id = "&cur3.GetInt("idp")) drug.cur2.Position=0 Dim notyf As String = cur3.GetString("drug_name") notyf = "زمان مصرف داروی "& notyf &" برای "& drug.cur2.GetString("name") n.SetInfo("آنالیز آزمایش",notyf,getNoty) n.Notify(1) med.Initialize med.Load(File.DirAssets,"ring.mp3") med.Looping=True med.Play drug.sql2.ExecNonQuery("update drug set number_of_drug=number_of_drug-1 where id ="&cur3.GetInt("id")) End If End If Next End Sub لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 31 خرداد، ۱۳۹۵ اشتراک گذاری ارسال شده در 31 خرداد، ۱۳۹۵ بعد ازاینکه فورس کلوز میشه حتما یه خطایی توی لاگ چاپ میکنه. اون رو هم بذار... لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir mahdizadeh 109 ارسال شده در 31 خرداد، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 31 خرداد، ۱۳۹۵ ** Activity (main) Pause, UserClosed = true ** ** Activity (menu) Create, isFirst = true ** ** Activity (menu) Resume ** ** Service (hoshdar) Start ** hoshdar_pn_onreceive (java line: 236) java.lang.RuntimeException: Object should first be initialized. at anywheresoftware.b4a.sql.SQL.checkNull(SQL.java:48) at anywheresoftware.b4a.sql.SQL.ExecQuery(SQL.java:154) at ir.analyse.test.hoshdar._pn_onreceive(hoshdar.java:236) at java.lang.reflect.Method.invoke(Native Method) at anywheresoftware.b4a.BA.raiseEvent2(BA.java:169) at anywheresoftware.b4a.BA.raiseEvent(BA.java:153) at PNBroadcastReceiver.PNBrodcastReceiver$1.onReceive(PNBrodcastReceiver.java:53) at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:881) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.TIME_TICK flg=0x50000014 (has extras) } in PNBroadcastReceiver.PNBrodcastReceiver$1@3c1feea at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:891) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Object should first be initialized. at anywheresoftware.b4a.BA.raiseEvent2(BA.java:206) at anywheresoftware.b4a.BA.raiseEvent(BA.java:153) at PNBroadcastReceiver.PNBrodcastReceiver$1.onReceive(PNBrodcastReceiver.java:53) at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:881) ... 7 more Caused by: java.lang.RuntimeException: Object should first be initialized. at anywheresoftware.b4a.sql.SQL.checkNull(SQL.java:48) at anywheresoftware.b4a.sql.SQL.ExecQuery(SQL.java:154) at ir.analyse.test.hoshdar._pn_onreceive(hoshdar.java:236) at java.lang.reflect.Method.invoke(Native Method) at anywheresoftware.b4a.BA.raiseEvent2(BA.java:169) ... 10 more هم عکس هم متنش خدمت شما لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 1 تیر، ۱۳۹۵ اشتراک گذاری ارسال شده در 1 تیر، ۱۳۹۵ Object should first be initialized. at anywheresoftware.b4a.sql.SQL.checkNull امیر جان میگه sql اینیشیالایز نشده. اینو مورد رو بررسی کن. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir mahdizadeh 109 ارسال شده در 1 تیر، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 1 تیر، ۱۳۹۵ Sub Service_Start (StartingIntent As Intent) StartServiceAt("", DateTime.Now + 60000,True) End Sub Sub pn_OnReceive(Action As String,keys() As String,Data As Object) Dim t As tabdilAdadBeEn t.Initialize If File.Exists(File.DirInternal,"databaseaz.db") = False Then File.Copy(File.DirAssets,"databaseaz.db",File.DirInternal,"databaseaz.db") End If If sql3.IsInitialized = False Then sql3.Initialize(File.DirInternal,"databaseaz.db",False) End If cur3 = sql3.ExecQuery("SELECT * FROM drug WHERE number_of_drug > 0") For i = 0 To cur3.RowCount - 1 cur3.Position = i Dim doz As Int Dim result As Int Dim x As String = cur3.GetString("doz") Select x Case "هر 4 ساعت" doz = 4 Case "هر 6 ساعت" doz = 6 Case "هر 8 ساعت" doz = 8 Case "هر 12 ساعت" doz = 12 Case "هر 24 ساعت" doz = 24 Case "هر 3 روز" doz = 72 Case "هر هفته" doz = 168 End Select Dim t1 As String=DateTime.Time(DateTime.Now) t1=t1.SubString2(0,2) t1=t.Tabdil(t1) result = (t1-cur3.GetInt("start_time_h")) result = result - ((result / doz) * doz) If Action="android.intent.action.TIME_TICK" Then Dim time As String=cur3.GetString("start_time_m") Dim time2 As String=DateTime.Time(DateTime.Now) time=t.Tabdil(time) time2=time2.SubString2(3,5) time2=t.Tabdil(time2) If result = 0 And time2 = time And cur3.GetInt("number_of_drug") > 0 Then n.Initialize n.Icon="icon" n.OnGoingEvent=True n.AutoCancel=True drug.cur2 = drug.sql2.ExecQuery("SELECT name FROM person WHERE id = "&cur3.GetInt("idp")) drug.cur2.Position=0 Dim notyf As String = cur3.GetString("drug_name") notyf = "زمان مصرف داروی "& notyf &" برای "& drug.cur2.GetString("name") n.SetInfo("آنالیز آزمایش",notyf,getNoty) n.Notify(1) med.Initialize med.Load(File.DirAssets,"ring.mp3") med.Looping=True med.Play drug.sql2.ExecNonQuery("update drug set number_of_drug=number_of_drug-1 where id ="&cur3.GetInt("id")) End If End If Next End Sub ببین داش این هم کد های service start sql رو هم اینیشیالایز کردم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
amir mahdizadeh 109
سلام دوستان
من یه برنامه دارم و توش از کتابخونه PNbroadcastReciver استفاده کردم و باهاش یهالارم ساختم به این صورت که
2 تا اسپینر دارم که زمان رو از کاربر میگیرم (یکی ساعت و یکی دقیقه) ساعت شروع مصرف
یه اسپینر دیگه دارم که نحوه مصرف دارو رو از کاربر میگیرم(مثلا هر 8 ساعت)
یدونه هم ادیت تکست دارم که تعداد دارو رو از کاربر میگیرم
این اطلاعات توی دیتابیس دخیره میشه بعد برنامه سر ساعت مصرف دارو یه موزیک رو به عنوان الارم پخش میکنه
حالا مشکل اینجاس که برنامه یر بعضی از ساعات مثلا 14:30 یا 20:30 یا 8:30 یا 2:30 یا .....(کلا ساعت هایی که نیم دارن) فورس کلوز میده
مثلا برنامه کلا بستس اما سر ساعت 16:30 که میشه یهو force close میده در صورتی که من هنوز الارم هم ست نکردم
امید وارم متوجه شده باشین و بتونین کمکم کنید
با تشکر
لینک ارسال
به اشتراک گذاری در سایت های دیگر
6 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.