amir mahdizadeh 109 ارسال شده در 20 شهریور، 2016 اشتراک گذاری ارسال شده در 20 شهریور، 2016 سلام دوستان من یه برنامه دارم و توش از کتابخونه PNbroadcastReciver استفاده کردم و باهاش یهالارم ساختم به این صورت که 2 تا اسپینر دارم که زمان رو از کاربر میگیرم (یکی ساعت و یکی دقیقه) ساعت شروع مصرف یه اسپینر دیگه دارم که نحوه مصرف دارو رو از کاربر میگیرم(مثلا هر 8 ساعت) یدونه هم ادیت تکست دارم که تعداد دارو رو از کاربر میگیرم این اطلاعات توی دیتابیس دخیره میشه بعد برنامه سر ساعت مصرف دارو یه موزیک رو به عنوان الارم پخش میکنه حالا مشکل اینجاس که برنامه یر بعضی از ساعات مثلا 14:30 یا 20:30 یا 8:30 یا 2:30 یا .....(کلا ساعت هایی که نیم دارن) فورس کلوز میده مثلا برنامه کلا بستس اما سر ساعت 16:30 که میشه یهو force close میده در صورتی که من هنوز الارم هم ست نکردم امید وارم متوجه شده باشین و بتونین کمکم کنید با تشکر لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 20 شهریور، 2016 اشتراک گذاری ارسال شده در 20 شهریور، 2016 سلام کدهای رویداد OnReceive تون رو بذارید. حتما یکاری انجام دادین که باعث میشه اون ساعت فورس کلوز بشه. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir mahdizadeh 109 ارسال شده در 20 شهریور، 2016 سازنده اشتراک گذاری ارسال شده در 20 شهریور، 2016 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 ارسال شده در 20 شهریور، 2016 اشتراک گذاری ارسال شده در 20 شهریور، 2016 بعد ازاینکه فورس کلوز میشه حتما یه خطایی توی لاگ چاپ میکنه. اون رو هم بذار... لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir mahdizadeh 109 ارسال شده در 20 شهریور، 2016 سازنده اشتراک گذاری ارسال شده در 20 شهریور، 2016 ** 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 ارسال شده در 20 شهریور، 2016 اشتراک گذاری ارسال شده در 20 شهریور، 2016 Object should first be initialized. at anywheresoftware.b4a.sql.SQL.checkNull امیر جان میگه sql اینیشیالایز نشده. اینو مورد رو بررسی کن. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
amir mahdizadeh 109 ارسال شده در 20 شهریور، 2016 سازنده اشتراک گذاری ارسال شده در 20 شهریور، 2016 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 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.